Java实现SHA1单向加密算法

复制代码
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Sha1Util {

    public String sha1(String data) throws NoSuchAlgorithmException {

        //加盐 更安全一些
        data += "hghjiami";

        //信息摘要器 算法名称
        MessageDigest md = MessageDigest.getInstance("SHA1");

        //把字符串转为字节数组
        byte[] b = data.getBytes();

        //使用指定的字节来更新我们的摘要
        md.update(b);

        //获取密文 (完成摘要计算)
        byte[] b2 = md.digest();

        //获取计算的长度
        int len = b2.length;

        //16进制字符串
        String str = "0123456789abcdef";

        //把字符串转为字符串数组
        char[] ch = str.toCharArray();

        //创建一个40位长度的字节数组
        char[] chs = new char[len * 2];

        //循环20次
        for (int i = 0, k = 0; i < len; i++) {
            //获取摘要计算后的字节数组中的每个字节
            byte b3 = b2[i];
            // >>>:无符号右移
            // &:按位与
            //0xf:0-15的数字
            chs[k++] = ch[b3 >>> 4 & 0xf];
            chs[k++] = ch[b3 & 0xf];
        }

        //字符数组转为字符串
        return new String(chs);
    }

}
复制代码

 

posted @   淡淡的晓山横雾  阅读(510)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示