java加密体系-SHA256

骑猪看日落 2021-06-14 00:48 589阅读 0赞
  1. import java.security.MessageDigest;
  2. import java.security.NoSuchAlgorithmException;
  3. import org.apache.commons.codec.digest.DigestUtils;
  4. /**
  5. * SHA256 单向散列函数 指纹 消息摘要算法 哈希函数
  6. * 值为32个字节
  7. * @author NP0612
  8. */
  9. public class LukeSHA256 {
  10. /**
  11.   * 利用java原生的摘要实现SHA256加密
  12.   * @param bytes 加密后的报文
  13.   * @return
  14.   */
  15. public static String sha256Hex(byte[] bytes){
  16. MessageDigest messageDigest;
  17. String encodeStr = "";
  18. try {
  19. messageDigest = MessageDigest.getInstance("SHA-256");
  20. messageDigest.update(bytes);
  21. encodeStr = byte2Hex(messageDigest.digest());
  22. } catch (NoSuchAlgorithmException e) {
  23. e.printStackTrace();
  24. }
  25. return encodeStr;
  26. }
  27. /**
  28.   * 将byte转为16进制
  29.   * @param bytes
  30.   * @return
  31.   */
  32. private static String byte2Hex(byte[] bytes){
  33. StringBuffer stringBuffer = new StringBuffer();
  34. String temp = null;
  35. for (int i=0;i<bytes.length;i++){
  36. temp = Integer.toHexString(bytes[i] & 0xFF);
  37. if (temp.length()==1){
  38. //1得到一位的进行补0操作
  39. stringBuffer.append("0");
  40. }
  41. stringBuffer.append(temp);
  42. }
  43. return stringBuffer.toString();
  44. }
  45. public static void main(String[] args) {
  46. byte[] bytes = new byte[2];
  47. bytes[0] = 44;
  48. bytes[1] = 11;
  49. System.out.println(LukeSHA256.sha256Hex(bytes));
  50. System.out.println(DigestUtils.sha256Hex(bytes));
  51. //16进制字符串两位占一个字节
  52. System.out.println(DigestUtils.sha256Hex(bytes).length());
  53. }
  54. }

发表评论

表情:
评论列表 (有 0 条评论,589人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaJava中实现 SHA-256加密

    今天对接第三方突然用到这个加密方式了,找了一些资料都没有特别好的,所以研究了一下找了到了两种加密,分享一下。 1、利用Apache的工具类实现加密 maven: