CheckSum คืออะไร CheckSum คือการตรวจสอบความถูกต้องของข้อมูล โดยฝ่ายที่ส่งข้อมูลจะทำการคำนวณค่า checksum แล้วใส่ค่า checksum ลงไปใน header ของแต่ละ Protocol ข้อมูล เช่น TCP/IP ,UDP,ICMP และเมื่อฝ่ายรับข้อมูล รับข้อมูลมาแล้วจะนำเอาค่า checksum นี้มาตรวจสอบข้อมูลที่รับมาว่าถูกต้องหรือไม่ เพราะการตรวจสอบความถูกต้อง และสมบูรณ์ของไฟล์โปรแกรมที่ดาวน์โหลดจากเว็บไซต์ก่อนการติดตั้งนั้นเป็น สิ่งสำคัญ ตัวอย่างโปรแกรมที่ใช้ในการ CheckSum เช่น md5 CheckSum, winMD5sum, hash เป็นต้น
ตัวอย่าง
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(); } } }ผลลัพธ์ที่ได้คือ
Digest(in hex format):: ab874467a7d1ff5fc71a4ade87dc0e098b458aaeตัวโปรแกรมจะทำการสร้างรหัสค่าแบบ SHA-1 checksum ลงในไฟล์ "C:\\users\\nopphanan7\\CheckSum.txt". สำหรับการสร้างรหัสแบบ MD5 ให้ทำการเปลี่ยนข้อความใน MessageDigest ดังนี้:
MessageDigest md = MessageDigest.getInstance("MD5");
0 comments:
Post a Comment