Java encryption algorithm-MD5 encryption and hash hash with secret key encryption algorithm source code
I have recently learned the knowledge of encryption algorithms and used MD5 encryption. Baidu has a lot of online information, but it is not very detailed. Here I will sort out how to implement the encryption algorithm with MD5 encryption and hash hash with secret keys. You can take a look.
Implementation code:
package com.ompa.common.utils;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import javax.crypto.Mac;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;/*** Use MD5 encryption* * @author zhangcd* @date 2016-4-29*/public class EncryptUtil { private static final String MAC_NAME = "HmacSHA1"; private static final String ENCODING = "UTF-8"; private static final String key = "iloveyou";/*** * MD5 adds code to generate 32-bit md5 code*/ public static String string2MD5(String inStr){ MessageDigest md5 = null; try{ md5 = MessageDigest.getInstance("MD5"); } catch (Exception e){ System.out.println(e.toString()); e.printStackTrace(); return ""; } char[] charArray = inStr.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (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 encryption generates 32-bit md5 code*/ public static String stringMD5(String inStr){ return string2MD5(string2MD5(inStr)); }/** * Encryption and decryption algorithm*/ public static String convertMD5(String inStr){ char[] a = inStr.toCharArray(); for (int i = 0; i < a.length; i++){ a[i] = (char) (a[i] ^ 't'); } String s = new String(a); return s; } /** * HMAC-SHA1 * @param encryptText * @param encryptKey * @return * @throws Exception */ public static String HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception { byte[] data=encryptKey.getBytes(ENCODING); SecretKey secretKey = new SecretKeySpec(data, MAC_NAME); Mac mac = Mac.getInstance(MAC_NAME); mac.init(secretKey); byte[] text = encryptText.getBytes(ENCODING); byte[] str = mac.doFinal(text);// Create Hex StringStringBuffer hexString = new StringBuffer();// Convert byte array to hexadecimal number for (int i = 0; i < str.length; i++) {String shaHex = Integer.toHexString(str[i] & 0xFF); if (shaHex.length() < 2) {hexString.append(0);}hexString.append(shaHex);}return hexString.toString();} public static String convertSHA1(String instr){try {return HmacSHA1Encrypt(instr,key);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return "";}}// Test the main function public static void main(String args[]) throws Exception { // Hash hash with secret key encryption String tt = convertSHA1("123456");System.out.println(tt);//MD5 encryption String s = new String("123456"); System.out.println("origin:" + s); System.out.println("after MD5:" + string2MD5(s)); System.out.println("after MD5:" + stringMD5(s));} }Thank you for reading, I hope it can help you. Thank you for your support for this site!