Java-Verschlüsselungsalgorithmus-MD5-Verschlüsselung und Hash-Hash mit geheimen Schlüsselverschlüsselungsalgorithmus-Quellcode
Ich habe kürzlich das Wissen über Verschlüsselungsalgorithmen gelernt und die MD5 -Verschlüsselung verwendet. Baidu hat viele Online -Informationen, ist aber nicht sehr detailliert. Hier werde ich herausfinden, wie der Verschlüsselungsalgorithmus mit MD5 -Verschlüsselung und Hash -Hash mit geheimen Schlüssel implementiert werden kann. Sie können einen Blick darauf werfen.
Implementierungscode:
Paket com.ompa.common.utils; Import Java.security.Messagedigest; Import Java.Security.NoSuchalgorithmException; Import Javax.Crypto.Mac; ZHANGCD* @DATE 2016-4-29*/public class EncryPtUtil {private statische endgültige String mac_name = "hmacsha1"; private statische endgültige Zeichenfolge coding = "utf-8"; private static final String key = "iLoveyou";/ ****MD5 fügt Code hinzu, um 32-Bit-MD5-Code zu generieren*/ public static String 2MD5 (String Instrument) {Messagedigest md5 = null; try {md5 = MessagedIGest.getInstance ("md5"); } catch (Ausnahme e) {System.out.println (e.toString ()); E. printstacktrace (); zurückkehren ""; } char [] charArray = instr.toCharArray (); byte [] bytearray = new byte [chararray.length]; für (int i = 0; i <chararray.length; i ++) bytearray [i] = (byte) chararray [i]; byte [] md5Bytes = md5.Digest (bytearray); StringBuffer hexValue = new StringBuffer (); für (int i = 0; i <md5Bytes.length; i ++) {int val = ((int) md5Bytes [i]) & 0xff; if (val <16) hexValue.Append ("0"); HexValue.Append (Integer.ToHexString (val)); } return hexValue.toString (); } / ****MD5-Verschlüsselung generiert 32-Bit-MD5-Code* / public static String StringMd5 (String Instrumente) {return String2MD5 (string2md5 (instr)); }/ *** Verschlüsselungs- und Entschlüsselungsalgorithmus*/ public static String convertMd5 (String Instrument) {char [] a = instr.toCharArray (); für (int i = 0; i <A.Length; i ++) {a [i] = (char) (a [i] ^ 't'); } String s = neuer String (a); Rückkehr s; } / ** * hmac-sha1 * @param encrytText * @param Encryptkey * @return * @throws Exception * / public static String hmacSHa1encrypt (String-Verschlüsselung, String-Verschlüsselung) löst Ausnahme aus {byte [] data = Encryptkey.getBytes (codiert (codiert); SecretKey SecretKey = New SecretKeySpec (Daten, mac_name); Mac mac = mac.getInstance (mac_name); Mac.init (SecretKey); byte [] text = EncrytText.getBytes (codieren); byte [] str = mac.dofinal (text); // hex stringstringbuffer hexstring = new StringBuffer (); // Byte -Array in hexadezimale Nummer für (int i = 0; i <str.Length; i ++) {String Shahex = Integer.tohexstring (str.Length; if (shahex.length () <2) {hexstring.Append (0);} hexstring.Append (Shahex);} return hexstring.toString ();} public static String convertsha1 (String Instring) {try {return hmacShacryption (Instrumente, schlüssell); blocke.printstacktrace (); return "";}} // Testen Sie die Hauptfunktion public static void main (String args []) Ausnahme {// Hash Hash mit geheimen Schlüsselverschlüsselungsstring tt = convertSheily1 ("123456"); System.out.println ("Origin:" + s); System.out.println ("After MD5:" + string2md5 (s)); System.out.println ("After MD5:" + stringMd5 (s));}}Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!