วลีรหัสผ่านที่จดจำได้ง่าย ประกอบด้วยคำแบบสุ่ม 4 ถึง 8 คำ จากรายชื่อคำภาษาอังกฤษตามมาตรฐาน BIP39
การเข้ารหัส / การถอดรหัส AES-GCM
เครื่องมือนี้ใช้ภาษาอังกฤษ; หน้านี้อธิบายด้วยภาษาของคุณ
ใช้การเข้ารหัส / การถอดรหัส AES-GCM
หน้าที่ของมันคืออะไร
เข้ารหัสข้อความด้วย AES-256-GCM และรหัสผ่าน หรือถอดรหัสข้อความ Base64 ที่สร้างโดยเครื่องมือนี้ กุญแจคือค่าแฮช SHA-256 เดียวของรหัสผ่าน ดังนั้นควรใช้รหัสผ่านที่ยาวและสุ่ม
ระบบนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ: ข้อมูลที่คุณป้อนจะไม่ถูกส่งขึ้นเซิร์ฟเวอร์เลย
วิธีใช้การเข้ารหัส / การถอดรหัส AES-GCM
- ป้อนรหัสผ่าน. ป้อนวลีรหัสผ่านที่ยาวและสุ่มลงในช่อง "รหัสผ่าน / กุญแจ" ช่องนี้ยังรับค่าว่างได้ ซึ่งไม่ช่วยปกป้องข้อมูลใดๆ
- คัดลอกข้อความ. ใส่ข้อความที่ต้องการเข้ารหัส หรือสตริง Base64 ที่สร้างขึ้นโดยเครื่องมือนี้ ลงในช่อง Plaintext / Ciphertext
- เข้ารหัสหรือถอดรหัส. กดปุ่ม "Encrypt" เพื่อรับสตริง Base64 หรือกดปุ่ม "Decrypt" เพื่อแปลงสตริงดังกล่าวกลับเป็นข้อความ
- คัดลอกและแชร์อย่างปลอดภัย. คัดลอกและส่ง Base64 ผ่านช่องทางหนึ่ง แล้วแบ่งปันรหัสผ่านผ่านช่องทางอื่น เช่น โดยพบหน้ากันหรือทางโทรศัพท์
- แก้ไขปัญหาการถอดรหัสที่ล้มเหลว. หาก Decrypt แสดงข้อความผิดพลาด: กุญแจผิดหรือข้อมูลไม่ถูกต้อง ให้ตรวจสอบรหัสผ่านตัวอักษรละตัวอักษร และตรวจสอบให้แน่ใจว่าได้คัดลอกสตริง Base64 ทั้งหมดแล้ว
ตัวอย่าง
ข้อความสั้น
Meet at the usual place at 10:00.sc/i5ncy6JbuW/+WPWQo6pboxhwf1K3tR7fOW49jHPXbZOVhlKrJEXqGkWJ31PqgI7moKwETaLovN0/tlA==ฟังก์ชัน Encrypt จะคืนค่า Base64 ของ IV แบบสุ่มขนาด 12 ไบต์ ข้อความเข้ารหัส และแท็กขนาด 16 ไบต์ ซึ่งค่าเหล่านี้จะแตกต่างกันไปในแต่ละครั้งที่รัน โปรดป้อนรหัสผ่าน (Passphrase) ในช่อง Password / Key ก่อน: เครื่องมือนี้ยังรับค่าว่างได้ แต่ค่าว่างจะไม่ช่วยปกป้องข้อมูลใดๆ
สิ่งที่ระบบตรวจสอบ
| สัญญาณ | ความหมายของคำนี้คืออะไร |
|---|---|
| คำสำคัญ | SHA-256 ของวลีรหัสผ่าน ซึ่งใช้เป็นตัวกุญแจ AES-256 ไม่มี salt และไม่มีการคำนวณที่ช้า ดังนั้นวลีรหัสผ่านเดียวกันจะให้ตัวกุญแจเดียวกันเสมอ |
| 16 ตัวอักษร Base64 แรก | IV ขนาด 12 ไบต์ การเข้ารหัสจะสร้าง IV แบบสุ่มใหม่ทุกครั้ง ดังนั้นข้อความเดียวกันจะให้ผลลัพธ์ที่แตกต่างกันในแต่ละครั้งที่รัน |
| ความยาวของผลลัพธ์ | IV 12 ไบต์ ตามด้วยไบต์ข้อความ แล้วตามด้วยแท็ก 16 ไบต์ ทั้งหมดอยู่ในรูปแบบ Base64 ข้อความว่างจะให้ 40 ตัวอักษร ส่วนข้อความ 23 ไบต์จะให้ 68 ตัวอักษร |
| ข้อผิดพลาด: คีย์ไม่ถูกต้องหรือข้อมูลไม่ถูกต้อง | รหัสผ่านไม่ตรงกัน (ต้องคำนึงถึงตัวพิมพ์ใหญ่-เล็กและช่องว่าง), ข้อความถูกแก้ไขหรือตัดออก หรือไม่ใช่ Base64 GCM จะไม่ส่งข้อความใดๆ กลับมาเมื่อการตรวจสอบล้มเหลว |
| ไม่มีส่วนหัวรูปแบบ | ข้อมูลที่ส่งออกไม่มีการระบุเวอร์ชันหรืออัลกอริทึม และไม่มีข้อมูลที่เกี่ยวข้อง ดังนั้น ซอฟต์แวร์อื่นจึงจำเป็นต้องใช้รูปแบบการจัดวางและวิธีการสร้างคีย์ที่ตรงกันนี้เพื่ออ่านข้อมูลดังกล่าว |
| ข้อมูลเข้าแบบ Base64 | Decrypt คาดหวังข้อมูล Base64 มาตรฐานที่สร้างขึ้นโดย Encrypt ช่องว่างและเครื่องหมายขึ้นบรรทัดใหม่ที่โปรแกรมอีเมลเพิ่มเข้าไปจะถูกเพิกเฉย แต่หากมีตัวอักษรที่ขาดหายไปหรือถูกเปลี่ยนแปลง การถอดรหัสจะล้มเหลว |
| รับรหัสผ่านที่ว่างแล้ว | ดังนั้น คีย์นั้นคือค่า SHA-256 ของสตริงว่าง ซึ่งใครก็สามารถคำนวณได้ ดังนั้นข้อความนั้นจึงไม่ได้รับการเข้ารหัสอย่างแท้จริง |
ตัวอย่างเพิ่มเติม
ถอดรหัสตัวอย่าง
Password / Key: example passphrase, not a real secret; Ciphertext: AAAAAAAAAAAAAAAAmdUgeZatb2KYwe2btQ+qgA3xKNnswXrrQ6AeKTDSu03TnrvNXygfDecrypt แสดงข้อความ "Hello from PhishDestroy" ตัวอย่างนี้ถูกสร้างขึ้นโดยใช้ IV ที่ประกอบด้วยเลขศูนย์ทั้งหมด (AAAAAAAAAAAAAAAAAAA) เพื่อวัตถุประสงค์ในการอธิบายเท่านั้น; ส่วน Encrypt จะใช้ IV แบบสุ่มเสมอ
ตัวอักษรหนึ่งในรหัสผ่านถูกเปลี่ยน
The same ciphertext with Password / Key: Example passphrase, not a real secretข้อผิดพลาด: คีย์ไม่ถูกต้อง หรือข้อมูลไม่ถูกต้อง
เข้ารหัสข้อความที่ว่าง
Plaintext / Ciphertext empty, any passphrase, Encryptสตริง Base64 ยาว 40 ตัวอักษร (IV 12 ไบต์ บวกกับแท็ก 16 ไบต์) ซึ่งแตกต่างกันทุกครั้งที่กด
คำถามที่พบบ่อย
กุญแจถูกสร้างขึ้นจากวลีรหัสผ่านของฉันอย่างไร?
กุญแจ AES-256 คือค่าแฮช SHA-256 ของวลีรหัสผ่าน โดยไม่ใช้ salt และไม่ใช้กระบวนการสร้างกุญแจแบบช้า เช่น PBKDF2 หรือ Argon2 ดังนั้น พาสเฟรสที่สั้นหรือคาดเดาได้ง่ายอาจถูกโจมตีด้วยวิธี Brute Force ได้อย่างรวดเร็วแบบออฟไลน์ ดังนั้นควรใช้พาสเฟรสที่ยาวและสุ่ม เช่น จาก Passphrase Generator
ข้อมูลในผลลัพธ์มีอะไรบ้าง และซอฟต์แวร์อื่นสามารถถอดรหัสได้หรือไม่?
Base64 ของ IV แบบสุ่มขนาด 12 ไบต์ ตามด้วยข้อความเข้ารหัสและแท็กการยืนยัน GCM ขนาด 16 ไบต์ การถอดรหัสจะแสดงข้อผิดพลาด: "ผิดกุญแจหรือข้อมูลไม่ถูกต้อง" หากวลีผ่านไม่ถูกต้องหรือมีไบต์ใดถูกเปลี่ยนแปลง และซอฟต์แวร์อื่นสามารถถอดรหัสได้เฉพาะเมื่อใช้กุญแจ SHA-256 และรูปแบบไบต์ที่เหมือนกันเท่านั้น
ข้อความหรือรหัสผ่านของฉันถูกส่งไปที่ใดบ้างไหม?
ไม่ครับ การเข้ารหัสดำเนินการในเบราว์เซอร์ของคุณโดยใช้ Web Crypto API; คำผ่านและข้อความจะไม่ถูกส่งขึ้นหรือเก็บไว้เลย
ผมควรเข้ารหัสวลีเมล็ดที่นี่หรือไม่?
ไม่. อย่าพิมพ์วลีเมล็ดของวอลเลตลงในเว็บไซต์เด็ดขาด และกุญแจที่สร้างจากแฮช SHA-256 ที่ไม่มีการเพิ่มเกลือ (unsalted) จะทำให้วลีผ่านรหัสที่อ่อนแอถูกโจมตีด้วยวิธี brute-force แบบออฟไลน์ได้ ดังนั้น ให้เก็บวลีเมล็ดไว้แบบออฟไลน์ เช่น บนกระดาษหรือโลหะ หรือในวอลเลตฮาร์ดแวร์
ซอฟต์แวร์อื่นสามารถถอดรหัสผลลัพธ์ได้หรือไม่?
ใช่ครับ หากใช้โครงสร้างเดียวกัน: key = SHA-256 ของ passphrase ในรูปแบบ UTF-8, IV = 12 byte แรก, tag = 16 byte สุดท้าย, ไม่มีข้อมูลที่เกี่ยวข้อง แพ็กเกจ cryptography ของ Python และไลบรารี AES-GCM อื่นๆ สามารถทำได้ครับ
สามารถใช้รหัสผ่านเดียวกันได้สำหรับข้อความหลายข้อความได้หรือไม่?
ข้อความแต่ละข้อความจะได้รับ IV ใหม่แบบสุ่มขนาด 12 ไบต์ ดังนั้นในความเป็นจริง การใช้ซ้ำจะไม่ทำให้ IV ซ้ำกัน ความเสี่ยงที่แท้จริงอยู่ที่รหัสผ่านเอง: ผู้ใดก็ตามที่รู้รหัสผ่านนี้สามารถอ่านข้อความทุกข้อความที่สร้างขึ้นด้วยรหัสผ่านนั้นได้
GCM มีข้อดีอะไรเพิ่มเติมเมื่อเทียบกับ AES แบบธรรมดา?
แท็กการยืนยันความถูกต้อง หากมีการเปลี่ยนแปลงใดๆ ใน IV, ข้อความเข้ารหัส หรือแท็ก ระบบจะตรวจพบการเปลี่ยนแปลงนั้น และการถอดรหัสจะล้มเหลว แทนที่จะส่งข้อความที่ถูกแก้ไขกลับมา