جافا تشفير خوارزمية MD5 وتجمع التجزئة مع رمز مصدر خوارزمية تشفير المفتاح السري
لقد تعلمت مؤخرًا معرفة خوارزميات التشفير واستخدمت تشفير MD5. لدى Baidu الكثير من المعلومات عبر الإنترنت ، لكنها ليست مفصلة للغاية. هنا سأقوم بفرز كيفية تنفيذ خوارزمية التشفير مع تشفير MD5 وتجزئة التجزئة مع المفاتيح السرية. يمكنك إلقاء نظرة.
رمز التنفيذ:
package com.ompa.common.utils ؛ import java.security.messagedigest ؛ import java.security.nosuchalgorithmexception ؛ import javax.crypto.mac ؛ import javax.crypto.secretke Zhangcd* date 2016-4-29*/الفئة العامة encryptutil {private static final string mac_name = "hmacsha1" ؛ سلسلة نهائية ثابتة خاصة = "UTF-8" ؛ key static final string static الخاص = "iloveyou" ؛/ ****MD5 يضيف رمزًا لإنشاء رمز MD5 32 بت*/ سلسلة Static String2MD5 (String instr) {messagedigest md5 = null ؛ حاول {md5 = messagedigest.getInstance ("md5") ؛ } catch (استثناء e) {system.out.println (e.toString ()) ؛ E.PrintStackTrace () ؛ يعود ""؛ } char [] chararray = instr.tochararray () ؛ byte [] bytearray = new byte [chararray.length] ؛ لـ (int i = 0 ؛ i <chararray.length ؛ i ++) bytearray [i] = (byte) Chararray [i] ؛ byte [] 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)) ؛ } إرجاع hexvalue.toString () ؛ } / ****تشفير MD5 ينشئ رمز MD5 32 بت* / سلسلة Static StringMD5 (String instr) {return string2md5 (String2MD5 (instr)) ؛ }/ *** خوارزمية التشفير وفك التشفير*/ السلسلة الثابتة العامة convertMD5 (string instr) {char [] a = instr.tocharray () ؛ لـ (int i = 0 ؛ i <a.length ؛ i ++) {a [i] = (char) (a [i] ^ 't') ؛ } سلسلة s = سلسلة جديدة (أ) ؛ العودة s ؛ } / ** * hmac-sha1 * param encrypttext * param encryptkey * return * @throws استثناء * / سلسلة ثابتة عامة hmacsha1encrypt (سلسلة encrypttext ، سلسلة encryptkey) رمي الاستثناء {byte [] data = encryptkey.getbytes (تشفير) ؛ SecretKey SecretKey = New SecretKeySpec (Data ، Mac_name) ؛ mac mac = mac.getInstance (mac_name) ؛ Mac.init (SecretKey) ؛ byte [] text = encrypttext.getBytes (الترميز) ؛ byte [] str = mac.dofinal (text) ؛ // إنشاء hex stringstringbuffer hexString = new StringBuffer () ؛ // تحويل صفيف البايت إلى الرقم السداسي (int i = 0 ؛ i <str.length ؛ i ++) {String shahex = integer.tohexstring (string [i] & 0xff) ؛ if (shahex.length () <2) {hexstring.append (0) ؛} hexstring.append (shahex) ؛} return hexstring.toString () ؛} سلسلة ثابتة عامة convertsha1 (string inst blocke.printstacktrace () ؛ return "" ؛}} // اختبار الوظيفة الرئيسية الرئيسية الفراغ الثابتة الرئيسية (السلسلة args []) يلقي الاستثناء {// hash مع سلسلة تشفير المفتاح السري tt = convertsha1 ("123456") ؛ System.Out.println (tt) ؛ // md5 encrytring s = 123456 ") ؛ System.out.println ("Origin:" + S) ؛ system.out.println ("بعد md5:" + string2md5 (s)) ؛ system.out.println ("بعد md5:" + stringmd5 (s)) ؛}}شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!