แฮช/การเข้ารหัส

AES Encrypt/Decrypt

เข้ารหัสและถอดรหัสข้อความด้วย AES-GCM หรือ AES-CBC โดยใช้รหัสผ่าน (คีย์ได้มาจาก PBKDF2)

AES is the standard for symmetric encryption: the same password is used to both encrypt and decrypt. This tool derives an encryption key from your password with PBKDF2 and encrypts text with AES-GCM or AES-CBC — all locally in your browser.

How to use it

Common uses

Things to keep in mind

The IV (initialization vector) must be unique for every encryption performed with the same key — reusing a key+IV pair in GCM completely breaks the encryption's security.

AES-CBC without a separate integrity check (a MAC) is vulnerable to ciphertext-tampering attacks — that's why GCM, which combines encryption and authentication in one mode, is the safer default.

บทความเกี่ยวกับเครื่องมือนี้: AES: การเข้ารหัสแบบสมมาตรทำงานอย่างไร

คำถามที่พบบ่อย

AES ในเครื่องมือนี้รองรับขนาดคีย์แบบใดบ้าง และควรใช้แบบไหน?

AES รองรับคีย์ขนาด 128, 192 และ 256 บิต โดยทั่วไปแนะนำ AES-256 สำหรับแอปพลิเคชันใหม่ เพราะ 128 บิตถือว่าปลอดภัยอยู่แล้ว แต่ 256 บิตให้ระยะปลอดภัยเพิ่มเติมโดยแทบไม่มีต้นทุนในทางปฏิบัติ

โหมดการเข้ารหัส (เช่น CBC, GCM) ต่างกันอย่างไร?

GCM ตรวจสอบความถูกต้องของไซเฟอร์เท็กซ์ไปพร้อมกับการเข้ารหัส จึงตรวจจับการปลอมแปลงได้ด้วย ทำให้เป็นค่าเริ่มต้นที่แนะนำ ส่วน CBC เข้ารหัสอย่างเดียวและต้องใช้ MAC แยกต่างหากเพื่อความถูกต้อง รวมถึงต้องมี IV แบบสุ่มทุกครั้งที่เข้ารหัสเพื่อความปลอดภัย

คีย์หรือข้อความต้นฉบับของฉันถูกส่งไปที่ไหนหรือไม่?

ไม่ การเข้ารหัสและถอดรหัสทั้งหมดทำงานในเบราว์เซอร์ของคุณผ่าน Web Crypto API ไม่มีการอัปโหลดข้อมูลใดไปยังเซิร์ฟเวอร์

เหตุใดจึงไม่ควรใช้โหมด ECB?

ECB เข้ารหัสแต่ละบล็อกอย่างอิสระและเหมือนกัน ดังนั้นบล็อกข้อความธรรมดาที่เหมือนกันจะให้บล็อกข้อความเข้ารหัสที่เหมือนกัน — สิ่งนี้เผยให้เห็นโครงสร้างของข้อมูล (เช่น รูปแบบที่ซ้ำกันในภาพยังคงมองเห็นได้แม้จะเข้ารหัสแล้ว) CBC หรือ GCM ที่มี IV ไม่ซ้ำกันจะขจัดปัญหานี้

จะเกิดอะไรขึ้นหากใช้ IV เดียวกันซ้ำกับคีย์เดียวกัน?

สำหรับ GCM นี่คือข้อผิดพลาดร้ายแรง — การใช้คู่คีย์+IV ซ้ำจะทำลายความลับและความถูกต้องแท้จริงของการเข้ารหัสอย่างสิ้นเชิง IV ต้องไม่ซ้ำกันเสมอสำหรับการเข้ารหัสแต่ละครั้งด้วยคีย์เดียวกัน

บทความ: แฮช/การเข้ารหัส

Hash Generator: MD5, SHA-1 และ SHA-256 ต่างกันอย่างไร

เหตุใด MD5 จึงยังใช้ตรวจสอบความถูกต้องของไฟล์ แต่ไม่ใช้กับรหัสผ่าน

Checksum Verifier: วิธีตรวจสอบว่าไฟล์ไม่เสียหาย

เหตุใด checksum ที่ตรงกันจึงยืนยันความถูกต้องของไฟล์ แต่ไม่ยืนยันว่าใครเป็นผู้สร้าง

HMAC: แฮชที่มีคีย์ต่างจากแฮชธรรมดาอย่างไร

เหตุใด SHA-256 ธรรมดาจึงไม่ป้องกันการปลอมแปลงข้อความ แต่ HMAC ป้องกันได้

Bcrypt: เหตุใดรหัสผ่านจึงถูกแฮชอย่างช้า ๆ ไม่ใช่เร็ว

เหตุใด SHA-256 ที่เร็วจึงเป็นตัวเลือกที่แย่สำหรับรหัสผ่าน และ bcrypt ที่ช้าจึงเป็นตัวเลือกที่ถูกต้อง

UUID: ตัวระบุที่แทบไม่เคยซ้ำกันถูกสร้างขึ้นอย่างไร

เหตุใด UUID v4 จึงสามารถสร้างแยกกันได้บนเครื่องนับล้านเครื่องโดยไม่มีความเสี่ยงชนกัน

Password Generator: อะไรที่ทำให้รหัสผ่านแข็งแกร่งจริง ๆ

เหตุใดรหัสผ่านยาวที่ประกอบจากคำในพจนานุกรมจึงแข็งแกร่งกว่ารหัสผ่านสั้นที่มีสัญลักษณ์และตัวเลข

Argon2: เหตุใดอัลกอริทึมนี้จึงชนะการแข่งขันแฮชรหัสผ่าน

Argon2 ป้องกันการโจมตีด้วย GPU ได้ดีกว่าอัลกอริทึมแฮชรหัสผ่านรุ่นเก่าอย่างไร

Scrypt: เหตุใดอัลกอริทึมนี้จึงต้องการหน่วยความจำมากขนาดนั้น

เหตุใด scrypt จึงต้องการหน่วยความจำมากโดยตั้งใจเพื่อให้การเดารหัสบนอุปกรณ์ ASIC ยากขึ้น

TOTP: รหัสใช้ครั้งเดียวในแอปยืนยันตัวตนทำงานอย่างไร

เหตุใดรหัสใน Google Authenticator จึงทำงานได้โดยไม่มีอินเทอร์เน็ตและซิงค์กับเซิร์ฟเวอร์ผ่านเวลาเท่านั้น

PBKDF2: มาตรฐานการยืดคีย์ที่เก่าแก่ที่สุด

เหตุใดจำนวนรอบการวนซ้ำที่แนะนำสำหรับ PBKDF2 จึงเพิ่มขึ้นทุกปี

X.509: ภายในใบรับรอง SSL มีอะไรบ้าง

เบราว์เซอร์ตรวจสอบอะไรในใบรับรองของเว็บไซต์ก่อนแสดงกุญแจสีเขียว

PGP: การเข้ารหัสด้วยกุญแจสาธารณะและกุญแจส่วนตัวทำงานอย่างไร

เหตุใดจึงสามารถแชร์กุญแจสาธารณะ PGP ได้อย่างอิสระ แต่ห้ามแชร์กุญแจส่วนตัวเด็ดขาด