บทความนี้อธิบายถึงคำจำกัดความและการใช้อัลกอริทึมการเข้ารหัสแบบสมมาตร 3DES ที่ใช้โดย Java แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. ทำไม 3DES จึงปรากฏขึ้น
1. กลับไปที่หลักการ Kirkhoff
2. มีปัญหาด้านความปลอดภัย
ผลประโยชน์ 3DES 3DES (TRIPLE DES หรือ DESEDE)
1. การเพิ่มความยาวคีย์
2. เพิ่มจำนวนการวนซ้ำ
พารามิเตอร์ที่เกี่ยวข้องกับ 3DE สามตัว
การใช้งานรหัส 3DES สี่รายการ
แพ็คเกจ com.imooc.security.des; นำเข้า java.security.key; นำเข้า java.security.securerandom; นำเข้า Javax.crypto.cipher; นำเข้า Javax.crypto.keyenerator; นำเข้า Javax.crypto.secretkey javax.crypto.spec.desedekeyspec; นำเข้า org.apache.commons.codec.binary.base64; คลาสสาธารณะ IMOOC3DES {สตริงคงที่ส่วนตัว SRC = "CAKIN24 Security 3DES"; โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jdk3des (); } โมฆะคงที่สาธารณะ jdk3des () {ลอง {// สร้างคีย์ keyenerator keygenerator = keygenerator.getInstance ("desede"); //KEYGENERATOR.INIT(168); keygenerator.init (ใหม่ securerandom ()); // ความยาวเริ่มต้น SecretKey SecretKey = KeyGenerator.generateKey (); ไบต์ [] byteskey = secretkey.getEncoded (); // การแปลงหลัก Desedekeyspec Desedekeyspec = ใหม่ Desedekeyspec (Byteskey); SecretKeyFactory Factory = SecretKeyFactory.GetInstance ("Desede"); คีย์ ConvertSecretKey = Factory.GenerAtesecret (Desedekeyspec); // การเข้ารหัส Cipher Cipher = Cipher.GetInstance ("Desede/ECB/PKCS5PADDING"); cipher.init (cipher.encrypt_mode, convertsecretkey); ไบต์ [] result = cipher.dofinal (src.getBytes ()); System.out.println ("JDK 3DES Encrypt:" + Base64.enCodeBase64String (ผลลัพธ์)); // decrypt cipher.init (cipher.decrypt_mode, convertsecretkey); ผลลัพธ์ = cipher.dofinal (ผลลัพธ์); System.out.println ("JDK 3DES DECRYPT:" + สตริงใหม่ (ผลลัพธ์)); } catch (exception e) {e.printstacktrace (); -ห้าความสำเร็จ
JDK 3DES Encrypt: 6T7A/RNARDZSL+MTEZVBFXWNNNZR0YJBW
JDK 3DES DECRYPT: CAKIN24 Security 3DES
หมายเหตุ: แพ็คเกจ org.apache.commons.codec.binary.Base64 มีการแนะนำที่นี่และคุณสามารถคลิกที่นี่ เพื่อดาวน์โหลดเว็บไซต์นี้
PS: เพื่อนที่สนใจในการเข้ารหัสและถอดรหัสสามารถอ้างถึงเครื่องมือออนไลน์ของเว็บไซต์นี้:
เครื่องมือเข้ารหัส/ถอดรหัสออนไลน์ DES:
http://tools.vevb.com/password/des_encode
ข้อความการเข้ารหัสและถอดรหัสออนไลน์ (รวมถึง AES, DES, RC4 ฯลฯ ):
http://tools.vevb.com/password/txt_encode
เครื่องมือเข้ารหัสออนไลน์ MD5:
http://tools.vevb.com/password/createMd5Password
MD5 ออนไลน์/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160 เครื่องมือเข้ารหัส:
http://tools.vevb.com/password/hash_md5_sha
ออนไลน์ sha1/sha224/sha256/sha384/sha512 เครื่องมือเข้ารหัส:
http://tools.vevb.com/password/sha_encode
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเนื้อหาที่เกี่ยวข้องกับ Java โปรดตรวจสอบหัวข้อของเว็บไซต์นี้: "สรุปทักษะการดำเนินงานทางคณิตศาสตร์ Java", "การสอนเกี่ยวกับโครงสร้างข้อมูล Java และอัลกอริทึม", "บทสรุปของตัวละคร Java และทักษะการดำเนินการสตริง", "สรุปการดำเนินงานของ Java
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน