【Java】Java中实现 SHA-256加密

墨蓝 2023-10-13 13:18 136阅读 0赞

今天对接第三方突然用到这个加密方式了,找了一些资料都没有特别好的,所以研究了一下找了到了两种加密,分享一下。

1、利用Apache的工具类实现加密

maven:

  1. <dependency>
  2. <groupId>commons-codec</groupId>
  3. <artifactId>commons-codec</artifactId>
  4. <version>${
  5. common-codec.version}</version>
  6. </dependency>
  7. /***
  8. * 利用Apache的工具类实现SHA-256加密
  9. * @param str 加密后的报文
  10. * @return
  11. */
  12. public static String getSHA256Str(String str){
  13. MessageDigest messageDigest;
  14. String encdeStr = "";
  15. try {
  16. messageDigest = MessageDigest.getInstance("SHA-256");
  17. byte[] hash = messageDigest.digest(str.getBytes("UTF-8"));
  18. encdeStr = Hex.encodeHexString(hash);
  19. } catch (NoSuchAlgorithmException e) {
  20. e.printStackTrace();
  21. } catch (UnsupportedEncodingException e) {
  22. e.printStackTrace();
  23. }
  24. return encdeStr;
  25. }

2.利用Java自带的实现加密

  1. /**
  2. * 利用java原生的摘要实现SHA256加密
  3. * @param str 加密后的报文
  4. * @return
  5. */
  6. public static String getSHA256StrJava(String str){
  7. MessageDigest messageDigest;
  8. String encodeStr = "";
  9. try {
  10. messageDigest = MessageDigest.getInstance("SHA-256");
  11. messageDigest.update(str.getBytes("UTF-8"));
  12. encodeStr = byte2Hex(messageDigest.digest());
  13. } catch (NoSuchAlgorithmException e) {
  14. e.printStackTrace();
  15. } catch (UnsupportedEncodingException e) {
  16. e.printStackTrace();
  17. }
  18. return encodeStr;
  19. }
  20. /**
  21. * 将byte转为16进制
  22. * @param bytes
  23. * @return
  24. */
  25. private static String byte2Hex(byte[] bytes){
  26. StringBuffer stringBuffer = new StringBuffer();
  27. String temp = null;
  28. for (int i=0;i<bytes.length;i++){
  29. temp = Integer.toHexString(bytes[i] & 0xFF);
  30. if (temp.length()==1){
  31. //1得到一位的进行补0操作
  32. stringBuffer.append("0");
  33. }
  34. stringBuffer.append(temp);
  35. }
  36. return stringBuffer.toString();
  37. }

发表评论

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

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

相关阅读

    相关 【Java】Java实现 SHA-256加密

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