美文网首页
手写一个加密类-基于MD5

手写一个加密类-基于MD5

作者: ssttIsme | 来源:发表于2019-10-06 17:06 被阅读0次
package demo;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

public class MD5Digest {
    public static String digest(String message){
        try {
            MessageDigest md=MessageDigest.getInstance("MD5");
            //加密后返回新的数组
            byte[] buf=md.digest(message.getBytes());
            //加密后返回128位的数据 16字节*8=128位
            System.out.println("原始二进制密文:"+Arrays.toString(buf)+" 长度"+buf.length);
            //转换后返回16进制的数据  一个字节2个16进制的数据
            StringBuilder sb=new StringBuilder();
            for(int i=0;i<buf.length;i++){
                String hexStr=Integer.toHexString(buf[i]&0xFF);//返回32位的数据
                if(hexStr.length()==1){
                    hexStr="0"+hexStr;
                }
                sb.append(hexStr);
            }
            String fianlStr=sb.toString();
            System.out.print("转为16进制的密文:"+fianlStr+" 长度"+fianlStr.length());
            return fianlStr;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
        
        
    }
    public static void main(String[] args) {
        digest("123");
        System.out.println();
        digest("123456");
    }
}
原始二进制密文:[32, 44, -71, 98, -84, 89, 7, 91, -106, 75, 7, 21, 45, 35, 75, 112] 长度16
转为16进制的密文:202cb962ac59075b964b07152d234b70 长度32
原始二进制密文:[-31, 10, -36, 57, 73, -70, 89, -85, -66, 86, -32, 87, -14, 15, -120, 62] 长度16
转为16进制的密文:e10adc3949ba59abbe56e057f20f883e 长度32

相关文章

网友评论

      本文标题:手写一个加密类-基于MD5

      本文链接:https://www.haomeiwen.com/subject/htiupctx.html