Java 实现字符串SHA1加密方法

网友投稿 527 2022-09-14


Java 实现字符串SHA1加密方法

目录java 字符串SHA1加密导入类定义函数javaSHA1实现加密解密封装一个方法用于加密主函数测试

Java 字符串SHA1加密

导入类

import java.security.MessageDigest;

定义函数

private String toUserPwd(final String password) {

try {

if (password == null) {

return null;

}

final MessageDigest messageDigest = MessageDigest.getInstance("SHA");

final byte[] digests = messageDigest.digest(password.getBytes());

final StringBuilder stringBuilder = new StringBuilder();

for (int i = 0; i < digests.length; i++) {

int halfbyte = (digests[i] >>> 4) & 0x0F;

for (int j = 0; j <= 1; j++) {

stringBuilder.append(

((0 <= halfbyte) && (halfbyte <= 9))

? (char) ('0' + halfbyte)

: (char) ('a' + (halfbyte - 10)));

halfbyte = digests[i] & 0x0F;

}

}

return stringBuilder.toString();

} catch (final Throwable throwable) {

this.log.error("error converting password", throwable);

return null;

}

}

javaSHA1实现加密解密

封装一个方法用于加密

/**

* sha1加密

* @param data

* @return

* @throws NoSuchAlgorithmException

*/

public static String sha1(String data) throws NoSuchAlgorithmException {

//加盐 更安全一些

data += "lyz";

//信息摘要器 算法名称

MessageDigest md = MessageDigest.getInstance("SHA1");

//把字符串转为字节数组

byte[] b = data.getBytes();

//使用指定的字节来更新我们的摘要

md.update(b);

//获取密文 (完成摘要计算)

byte[] b2 = md.digest();

//获取计算的长度

int len = b2.length;

//16进制字符串

http:// String str = "0123456789abcdef";

//把字符串转为字符串数组

char[] ch = str.toCharArray();

//创建一个40位长度的字节数组

char[] chs = new char[len*2];

//循环20次

for(int i=0,k=0;i

byte b3 = b2[i];//获取摘要计算后的字节数组中的每个字节

LblQqRvwJ // >>>:无符号右移

// &:按位与

//0xf:0-15的数字

chs[k++] = ch[b3 >>> 4 & 0xf];

chs[k++] = ch[b3 & 0xf];

}

//字符数组转为字符串

return new String(chs);

}

主函数测试

public static void main(String[] args) throws NoSuchAlgorithmException {

String data = "跳梁小豆tlxd666";

String result = sha1(data);

System.out.println("加密后:"+result);

}

以上为个

http://

byte b3 = b2[i];//获取摘要计算后的字节数组中的每个字节

LblQqRvwJ // >>>:无符号右移

// &:按位与

//0xf:0-15的数字

chs[k++] = ch[b3 >>> 4 & 0xf];

chs[k++] = ch[b3 & 0xf];

}

//字符数组转为字符串

return new String(chs);

}

主函数测试

public static void main(String[] args) throws NoSuchAlgorithmException {

String data = "跳梁小豆tlxd666";

String result = sha1(data);

System.out.println("加密后:"+result);

}

以上为个

http://


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:APC UPS 网络管理卡(型号apc ap9631)的配置(apc术是什么手术)
下一篇:网络工程师的发展方向(网络工程师发展前景)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~