失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java加密算法---SHA

Java加密算法---SHA

时间:2019-02-11 20:08:04

相关推荐

Java加密算法---SHA

SHA算法介绍:SHA即Secure Hash Algorithm(安全哈希算法),用于数字签名标准(DSS)里面定义的数字签名算法(DSA)。SHA是数字签名等密码学应用中重要的工具,被广泛地应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被破解了, 但是SHA仍然是公认的安全加密算法,较之MD5更为安全。

SHA算法详解:SHA算法是接收一段明文,然后以一种不可逆的方式将它转换成一段密文,也可以简单的理解为取一串输入码,并把它们转化为长度较短、位数固定的输出序列即散列值的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”,所以对散列值的数字签名就可以视为对此明文的数字签名。

使用Java通过的API实现SHA加密程序如下:

<span style="font-size:18px;">import java.security.MessageDigest;public class SHA {public static final String KEY_SHA = "SHA";public static char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};//SHA加密public static byte[] encryptSHA(byte[] data) throws Exception {MessageDigest sha = MessageDigest.getInstance(KEY_SHA);sha.update(data);return sha.digest();}public static void main(String[] args) throws Exception {String inputStr="这是一个测试字符串aaabbbccc111222333";System.out.println("原始数据:"+inputStr);byte[] inputData = inputStr.getBytes();byte[] outDate = encryptSHA(inputData);System.out.println("原始加密数据:"+outDate);//把密文转换成16进制字符串的形式int j = outDate.length;char str[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 = outDate[i];str[k++] = hexDigits[byte0 >>> 4 & 0xf];str[k++] = hexDigits[byte0 & 0xf];}System.out.print("16进制字符串形式密文:");System.out.println(str);}}</span>

输出结果为:

<span style="font-size:18px;">原始数据:这是一个测试字符串aaabbbccc111222333原始加密数据:[B@1f06dc316进制字符串形式密文:A04901BECFA058EF734482D143E743EBBD13A8E5</span>

如果觉得《Java加密算法---SHA》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。