Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ความแตกต่างระหว่าง Hashing และ Encryption ในความปลอดภัยข้อมูล

Hashing

กระบวนการทางเข้ารหัสตรวจสอบ Authenticity และ Integrity ของ Input ต่างๆ ใช้ใน Authentication Systems ป้องกันเก็บ Plaintext Passwords ใน Database ยังใช้ตรวจสอบไฟล์ เอกสาร ข้อมูลประเภทอื่น การใช้ Hashing ผิดวิธีทำให้ Data Breach แต่ไม่ใช้ Hashing เลยก็แย่กว่า

คุณสมบัติ Hashing Function

  • One-way (ไม่ย้อนกลับได้): Output คือ Fixed-length String เรียกว่า Hash Value, Digest, หรือ Hash
  • ไม่ต้องเก็บเป็นความลับ: เพราะกลับเป็นค่าเดิมไม่ได้
  • Deterministic: Input เดียวกัน → Hash เดียวกันเสมอ
  • Collision: Input ต่างกัน → Hash เหมือนกัน หากหา Collision ง่าย ถือว่า Hash Function เสียหายทางความปลอดภัย

Encryption

กระบวนการเข้ารหัส Plaintext และข้อมูลอื่นๆ ให้เข้าถึงได้เฉพาะผู้มี Decryption Key ป้องกันข้อมูลละเอียดอ่อนจาก Cybercriminals วิธีที่มีประสิทธิภาพที่สุดสำหรับ Information Security ในระบบสื่อสารสมัยใหม่

หลักการ

  • ผู้รับต้องมี Password หรือ Security Key สำหรับ Decryption
  • Plaintext = ข้อมูลไม่เข้ารหัส, Ciphertext = ข้อมูลเข้ารหัส
  • วัตถุประสงค์: ป้องกันข้อมูลจากผู้ไม่ได้รับอนุญาต

ตารางเปรียบเทียบ

HashingEncryption
One-way Function สร้าง Message Digest จาก Input ไม่ใช้ KeyTwo-way Function สลับข้อมูลด้วย Encryption Key ถอดรหัสด้วย Decryption Key
ตรวจสอบ Integrity โดยตรวจจับการเปลี่ยนแปลงผ่าน Hash Outputเข้ารหัสเพื่อ Confidentiality และ Security ต้องใช้ Private Key ถอดรหัส
ไม่ต้องการ Keyใช้ Key: Symmetric ใช้ Public Key เท่านั้น Asymmetric ใช้ Public และ Private Key
วัตถุประสงค์: Verify Data (Integrity)วัตถุประสงค์: Transmit Data Securely (Confidentiality)