package com.dc;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/* ****************** 类说明 *********************
* class : DcSHAUtil
* @author : ncc
* create time : 2017-12-19 上午10:36:08
* @version : 1.0
* description : SHA 是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,
* 现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,
* 然后以一种不可逆的方式将它转换成一段(通常更小)密文,
* 也可以简单的理解为取一串输入码(称为预映射或信息),
* 并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
* 散列函数值可以说时对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。
* @see :
* ************************************************/
public class DcSHAUtil {
/* ********************************************
* method name : eccrypt
* description : 加密字符串
* @return : byte[]
* @param : @param info
* @param : @return
* @param : @throws NoSuchAlgorithmException
* modified : ncc , 2017-12-19
* @see :
* ********************************************/
public byte[] eccrypt(String info) throws NoSuchAlgorithmException{
MessageDigest md5 = MessageDigest.getInstance("SHA");
byte[] srcBytes = info.getBytes();
//使用srcBytes更新摘要
md5.update(srcBytes);
//完成哈希计算,得到result
byte[] resultBytes = md5.digest();
return resultBytes;
}
/**
* @param args
* @throws NoSuchAlgorithmException
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
String msg = "欢迎光临得草之家!";
DcSHAUtil sha = new DcSHAUtil();
byte[] resultBytes = sha.eccrypt(msg);
System.out.println("明文是:" + msg);
System.out.println("密文是:" + new String(resultBytes));
}
}