SHA加密算法Java实现

来源:互联网 发布:日本千叶大学知乎 编辑:程序博客网 时间:2024/06/05 16:28

SHA(Secure Hash Algorithm)安全哈希算法是美国国家标准技术研究所发布的国家标准FIPS PUB 180,最新的标准已经于2008年更新到FIPS PUB 180-3。
其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。
SHA-1,SHA-224和SHA-256适用于长度不超过2^64二进制位的消息。SHA-384和SHA-512适用于长度不超过2^128二进制位的消息。
其主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。

以上为百度百科简要介绍,具体内容请百度或Google查询。

其Java实现代码如下:

import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class SHA256StringEncrypt {public static void main(String args[]) {String afterEncrypt = SHA256StringEncrypt.Encrypt("test", "");System.out.println(afterEncrypt);}/** * @param strSrc *            要加密的字符串 * @param encName *            加密类型,MD5以及SHA系列,如SHA-1,SHA-224,SHA-256,SHA-384,SHA-512 * @return */public static String Encrypt(String strSrc, String encType) {MessageDigest md = null;String strDes = null;byte[] bt = strSrc.getBytes();try {if (encType == null || encType.equals("")) {encType = "SHA-256";}md = MessageDigest.getInstance(encType);md.update(bt);strDes = bytes2Hex(md.digest()); // to HexString} catch (NoSuchAlgorithmException e) {return null;}return strDes;}public static String bytes2Hex(byte[] bts) {String des = "";String tmp = null;for (int i = 0; i < bts.length; i++) {tmp = (Integer.toHexString(bts[i] & 0xFF));if (tmp.length() == 1) {des += "0";}des += tmp;}return des;}}

以上内容根据网络资料整理,仅做学习记录,如有冒犯,请及时通知!

      

0 0
原创粉丝点击