在进行Java软件开发过程中,难免会对一些数据进行加密,因此Java中提供了自带的MessageDigest实现对文本的加密算法,下面是一个对文本进行加密的MD5加密工具类代码示例:
1 package org.4spaces; 2 3 4 import org.apache.commons.lang3.StringUtils; 5 6 import java.security.MessageDigest; 7 import java.security.NoSuchAlgorithmException; 8 9 /** 10 * 功能:MD5加密工具类 11 * 说明:转载请注明:四个空格---https://www.4spaces.org 12 */ 13 public class MD5Util { 14 /** 15 * 1.对文本进行32位小写MD5加密 16 * @param plainText 要进行加密的文本 17 * @return 加密后的内容 18 */ 19 public static String textToMD5L32(String plainText){ 20 String result = null; 21 //首先判断是否为空 22 if(StringUtils.isBlank(plainText)){ 23 return null; 24 } 25 try{ 26 //首先进行实例化和初始化 27 MessageDigest md = MessageDigest.getInstance("MD5"); 28 //得到一个操作系统默认的字节编码格式的字节数组 29 byte[] btInput = plainText.getBytes(); 30 //对得到的字节数组进行处理 31 md.update(btInput); 32 //进行哈希计算并返回结果 33 byte[] btResult = md.digest(); 34 //进行哈希计算后得到的数据的长度 35 StringBuffer sb = new StringBuffer(); 36 for(byte b : btResult){ 37 int bt = b&0xff; 38 if(bt<16){ 39 sb.append(0); 40 } 41 sb.append(Integer.toHexString(bt)); 42 } 43 result = sb.toString(); 44 }catch(NoSuchAlgorithmException e){ 45 e.printStackTrace(); 46 } 47 return result; 48 } 49 50 /** 51 * 2.对文本进行32位MD5大写加密 52 * @param plainText 要进行加密的文本 53 * @return 加密后的内容 54 */ 55 public static String textToMD5U32(String plainText){ 56 if(StringUtils.isBlank(plainText)){ 57 return null; 58 } 59 String result = textToMD5L32(plainText); 60 return result.toUpperCase(); 61 } 62 63 /** 64 * 3.对文本进行16位MD5小写加密 65 * @param plainText 需要进行加密的文本 66 */ 67 public static String textToMD5L16(String plainText){ 68 if(StringUtils.isBlank(plainText)){ 69 return null; 70 } 71 String result = textToMD5L32(plainText); 72 return result.substring(8,24); 73 } 74 75 /** 76 * 4.对文本进行16位MD5大写加密 77 * @param plainText 需要进行加密的文本 78 * @return 79 */ 80 public static String textToMD5U16(String plainText){ 81 if(StringUtils.isBlank(plainText)){ 82 return null; 83 } 84 String result = textToMD5L32(plainText); 85 return result.toUpperCase().substring(8, 24); 86 } 87 88 public static void main(String[] args) { 89 System.out.println(textToMD5U16("0")); 90 } 91 }
我是代码搬运工!!!