บทความนี้อธิบายถึงการใช้การเข้ารหัส HEX และการถอดรหัสเพื่อใช้การเข้ารหัสและถอดรหัส AES แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
ที่นี่วิธีการเข้ารหัสและถอดรหัส AES ถูกเข้ารหัสและถอดรหัสโดยใช้ Hex
แพ็คเกจ com.baidu.wallet.bdwallet.utils; นำเข้า java.io.unsupportencodingexception; นำเข้า Java.security.invalidkeyException; นำเข้า Java.security.nosuchalgorithmexception; SizeException; นำเข้า Javax.crypto.nosuchpaddingException; นำเข้า javax.crypto.spec.secretkeyspec; นำเข้า org.apache.commons.codec.decoderexception; นำเข้า org.apache.commons.codec.binary.hex; * @throws decodeRexception */ private static byte [] encrypt (เนื้อหาสตริง, สตริง pkey) โยน Decoderexception {ลอง {String Private_key = pkey; ();} secretkeyspec key = ใหม่ secretkeyspec (encodeFormat, AES); Cipher.GetInstance ("AES/ECB/PKCS5PADDING"); ผลตอบแทน; Catch (InvalidkeyException E) {E.PrintStackTrace (); ฉันมีเนื้อหา * @param รหัสผ่าน * @return * @throws decoderexception */ private static byte [] DECRYPT (เนื้อหาสตริง, รหัสผ่านสตริง) โยน decoderException {ลอง {// ใช้ hex เพื่อถอดรหัส ciphertext byte [] content = hex.decodehex (สารบัญ toChararray ()); chararray ()); CIPHER = CIPHER.TINSTANCE (AES); Exception E) {E.PrintStackTrace (); (unlueLblocksizeException e) {E.PrintStackTrace (); // plaintext ที่เข้ารหัสกลายเป็น byte ciphertext [] encryptresult = เข้ารหัส (บริบท, private_key); บริบทสตริง, สตริงส่วนตัว _key) พ่น DecoderException, unsupportencodingexception {// hex decoding ดำเนินการก่อนที่จะถอดรหัส ciphertext ที่นี่ byte [] decryptresult = decrypt (บริบท, private_key); 456787654321 "; // AES การเข้ารหัสและการถอดรหัสคีย์สตริงรหัสผ่าน =" ค่านี้ได้รับโดยทั่วไปผู้ส่งทั้งสองรู้ "; // encrypt system.out.println ("ก่อนการเข้ารหัส:" เนื้อหา); ln ("หลังจากการถอดรหัส:" + ผลลัพธ์);ไม่มีปัญหากับวิธีการนี้ในโครงการที่เป็นทางการ
วิธีการข้างต้นใช้ใน org.apache.commons.codec.binary.hex
<Ederency> <roupId> Commons-Codec </groupId> <ratifactId> Commons-Codec </artifactId> <version> 1.4 </SerfiS
หมายเหตุ: คุณควรใช้เวอร์ชัน 1.4 ขึ้นไปที่นี่และไม่ควรมี hex.encodehexstring (byte []) วิธีต่ำกว่า 1.4!
PS: เพื่อนที่สนใจในการเข้ารหัสและถอดรหัสสามารถอ้างถึงเครื่องมือออนไลน์ของเว็บไซต์นี้:
การตรวจจับความปลอดภัยของรหัสผ่านออนไลน์:
http://tools.vevb.com/password/my_password_safe
เครื่องกำเนิดรหัสผ่านที่มีความแข็งแรงสูง:
http://tools.vevb.com/password/createstrongpassword
Thunder, Express และ Tornado URL เครื่องมือการเข้ารหัส/ถอดรหัส:
http://tools.vevb.com/password/urlrethunder
เครื่องมือเข้ารหัสอัลกอริทึมแฮช/แฮชออนไลน์:
http://tools.vevb.com/password/hash_encrypt
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 ของทุกคน