CheckSum คืออะไร CheckSum คือการตรวจสอบความถูกต้องของข้อมูล โดยฝ่ายที่ส่งข้อมูลจะทำการคำนวณค่า checksum แล้วใส่ค่า checksum ลงไปใน header ของแต่ละ Protocol ข้อมูล เช่น TCP/IP ,UDP,ICMP และเมื่อฝ่ายรับข้อมูล รับข้อมูลมาแล้วจะนำเอาค่า checksum นี้มาตรวจสอบข้อมูลที่รับมาว่าถูกต้องหรือไม่ เพราะการตรวจสอบความถูกต้อง และสมบูรณ์ของไฟล์โปรแกรมที่ดาวน์โหลดจากเว็บไซต์ก่อนการติดตั้งนั้นเป็น สิ่งสำคัญ ตัวอย่างโปรแกรมที่ใช้ในการ CheckSum เช่น md5 CheckSum, winMD5sum, hash เป็นต้น
ตัวอย่าง
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package demo.file; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class CheckSumExample { /** * @param args */ public static void main(String[] args) { File datafile = new File( "C:\\users\\nopphanan7\\CheckSum.txt" ); try { MessageDigest md = MessageDigest.getInstance( "SHA1" ); FileInputStream fis = new FileInputStream(datafile); byte [] dataBytes = new byte [ 1024 ]; int nread = 0 ; while ((nread = fis.read(dataBytes)) != - 1 ) { md.update(dataBytes, 0 , nread); } byte [] mdbytes = md.digest(); // convert the byte to hex format StringBuffer sb = new StringBuffer( "" ); for ( int i = 0 ; i < mdbytes.length; i++) { sb.append(Integer.toString((mdbytes[i] & 0xff ) + 0x100 , 16 ).substring( 1 )); } System.out.println( "Digest(in hex format):: " + sb.toString()); FileWriter fileWritter = new FileWriter(datafile, true ); BufferedWriter bufferWritter = new BufferedWriter(fileWritter); bufferWritter.write(sb.toString()); bufferWritter.close(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
1 | Digest(in hex format):: ab874467a7d1ff5fc71a4ade87dc0e098b458aae |
1 | MessageDigest md = MessageDigest.getInstance( "MD5" ); |
0 comments:
Post a Comment