การเข้ารหัส Java Encryption Algorithm-MD5 และแฮชแฮชพร้อมซอร์สโค้ดการเข้ารหัสคีย์ลับ
ฉันเพิ่งเรียนรู้ความรู้เกี่ยวกับอัลกอริทึมการเข้ารหัสและใช้การเข้ารหัส MD5 Baidu มีข้อมูลออนไลน์มากมาย แต่ก็ไม่ได้มีรายละเอียดมากนัก ที่นี่ฉันจะจัดเรียงวิธีการใช้อัลกอริทึมการเข้ารหัสด้วยการเข้ารหัส MD5 และแฮชแฮชด้วยคีย์ลับ คุณสามารถดู
รหัสการใช้งาน:
แพ็คเกจ com.ompa.common.utils; นำเข้า Java.security.messagedigest; นำเข้า java.security.nosuchalgorithmexception; นำเข้า Javax.crypto.mac; นำเข้า Javax.crypto.secretkey; Zhangcd* @date 2016-4-29*/คลาสสาธารณะ Encryptutil {สตริงสุดท้ายคงที่ mac_name = "hmacsha1"; การเข้ารหัสสตริงสุดท้ายคงที่ส่วนตัว = "UTF-8"; คีย์สตริงสุดท้ายคงที่ส่วนตัว = "iloveyou";/ ****MD5 เพิ่มรหัสเพื่อสร้างรหัส MD5 32 บิต*/ สตริงสตริงคงที่สาธารณะ 2MD5 (สตริง instr) {MESAGEDIGEST MD5 = NULL; ลอง {md5 = messageGeSt.getInstance ("MD5"); } catch (exception e) {system.out.println (e.toString ()); E.PrintStackTrace (); กลับ ""; } char [] chararray = instr.tochararray (); ไบต์ [] bytearray = ไบต์ใหม่ [chararray.length]; สำหรับ (int i = 0; i <chararray.length; i ++) bytearray [i] = (ไบต์) chararray [i]; ไบต์ [] md5bytes = md5.digest (bytearray); StringBuffer hexValue = new StringBuffer (); สำหรับ (int i = 0; i <md5bytes.length; i ++) {int val = ((int) md5bytes [i]) & 0xff; ถ้า (val <16) hexvalue.append ("0"); hexvalue.append (Integer.tohexstring (val)); } return hexvalue.toString (); } / ****การเข้ารหัส MD5 สร้างรหัส MD5 32 บิต* / สตริงสตริงคงที่สาธารณะ Stringmd5 (สตริง instr) {return string2md5 (String2md5 (instr)); }/ *** อัลกอริทึมการเข้ารหัสและการถอดรหัส*/ สตริงคงที่สาธารณะ convertmd5 (string instr) {char [] a = instr.tochararray (); สำหรับ (int i = 0; i <a.length; i ++) {a [i] = (char) (a [i] ^ 't'); } สตริง s = สตริงใหม่ (A); กลับ s; } / ** * hmac-sha1 * @param encrypttext * @param encryptkey * @return * @throws Exception * / สตริงคงที่สาธารณะ hmacsha1encrypt (String EncryptText, String Encryptkey) SecretKey SecretKey = ใหม่ SecretKeySPEC (ข้อมูล, MAC_NAME); mac mac = mac.getInstance (mac_name); Mac.init (SecretKey); ไบต์ [] text = encrypttext.getBytes (การเข้ารหัส); ไบต์ [] str = mac.dofinal (ข้อความ); // สร้าง hex stringstringbuffer hexstring = new Stringbuffer (); // แปลงอาร์เรย์ไบต์เป็นเลขฐานสิบหกสำหรับ (int i = 0; i <str.length; i ++) if (shahex.length () <2) {hexstring.append (0);} hexstring.append (shahex);} return hexstring.toString ();} public String convertsha1 blocke.printstacktrace (); return "";}} // ทดสอบฟังก์ชั่นหลักโมฆะสาธารณะคงที่หลัก (สตริง args []) โยนข้อยกเว้น {// แฮชแฮชด้วยสตริงการเข้ารหัสคีย์ลับ tt = convertsha1 ("123456"); system.out.println (tt); // md5 System.out.println ("Origin:" + S); System.out.println ("After Md5:" + String2md5 (s)); System.out.println ("After Md5:" + Stringmd5 (s));}}ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!