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); } }
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)