Java加密算法---SHA
生活随笔
收集整理的這篇文章主要介紹了
Java加密算法---SHA
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
SHA算法介紹:SHA即Secure Hash Algorithm(安全哈希算法),用于數(shù)字簽名標準(DSS)里面定義的數(shù)字簽名算法(DSA)。SHA是數(shù)字簽名等密碼學(xué)應(yīng)用中重要的工具,被廣泛地應(yīng)用于電子商務(wù)等信息安全領(lǐng)域。雖然,SHA與MD5通過碰撞法都被破解了, 但是SHA仍然是公認的安全加密算法,較之MD5更為安全。?
SHA算法詳解:SHA算法是接收一段明文,然后以一種不可逆的方式將它轉(zhuǎn)換成一段密文,也可以簡單的理解為取一串輸入碼,并把它們轉(zhuǎn)化為長度較短、位數(shù)固定的輸出序列即散列值的過程。散列函數(shù)值可以說是對明文的一種“指紋”或是“摘要”,所以對散列值的數(shù)字簽名就可以視為對此明文的數(shù)字簽名。
使用Java通過的API實現(xiàn)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="這是一個測試字符串a(chǎn)aabbbccc111222333";System.out.println("原始數(shù)據(jù):"+inputStr);byte[] inputData = inputStr.getBytes();byte[] outDate = encryptSHA(inputData);System.out.println("原始加密數(shù)據(jù):"+outDate);//把密文轉(zhuǎn)換成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> 輸出結(jié)果為: <span style="font-size:18px;">原始數(shù)據(jù):這是一個測試字符串a(chǎn)aabbbccc111222333 原始加密數(shù)據(jù):[B@1f06dc3 16進制字符串形式密文:A04901BECFA058EF734482D143E743EBBD13A8E5</span>總結(jié)
以上是生活随笔為你收集整理的Java加密算法---SHA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西门子plc s-7 1200驱动伺服电
- 下一篇: 台达PLC水箱液位控制系统参数整定及开环