md5加密
来源:互联网 发布:stm32串口提取数据 编辑:程序博客网 时间:2024/05/17 08:07
本篇使用java自带的MessageDigest实现对文本的md5加密算法,具体代码如下:
-
-
-
- package cn.yicha.novel.util;
-
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
-
- public class ParseMD5 {
-
-
-
-
-
-
-
-
- public static String parseStrToMd5L32(String str){
- String reStr = null;
- try {
- MessageDigest md5 = MessageDigest.getInstance("MD5");
- byte[] bytes = md5.digest(str.getBytes());
- StringBuffer stringBuffer = new StringBuffer();
- for (byte b : bytes){
- int bt = b&0xff;
- if (bt < 16){
- stringBuffer.append(0);
- }
- stringBuffer.append(Integer.toHexString(bt));
- }
- reStr = stringBuffer.toString();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- return reStr;
- }
-
-
-
-
-
-
-
-
- public static String parseStrToMd5U32(String str){
- String reStr = parseStrToMd5L32(str);
- if (reStr != null){
- reStr = reStr.toUpperCase();
- }
- return reStr;
- }
-
-
-
-
-
-
-
-
- public static String parseStrToMd5U16(String str){
- String reStr = parseStrToMd5L32(str);
- if (reStr != null){
- reStr = reStr.toUpperCase().substring(8, 24);
- }
- return reStr;
- }
-
-
-
-
-
-
-
-
- public static String parseStrToMd5L16(String str){
- String reStr = parseStrToMd5L32(str);
- if (reStr != null){
- reStr = reStr.substring(8, 24);
- }
- return reStr;
- }
- }
- 就是把string字符串转成字节数组,然后通过md5的messagedigest类加密成另外一个字节数组,然后遍历这个字节数组,把每一个元素与255的16进制数做与运算,并对运算完的结果进行小于16的数进行补零的操作。最终添加到新的String里面去。完成md5的加密。
md5是单向的。 目前网上流行的解密是字典破解。运算速度决定于服务器的电脑的配置。
1 0