SHA256Utils.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.miniframe.utils;
  2. import java.io.UnsupportedEncodingException;
  3. import java.security.MessageDigest;
  4. import java.security.NoSuchAlgorithmException;
  5. public class SHA256Utils {
  6. /**
  7. * 利用java原生的类实现SHA256加密
  8. * @param str 加密后的报文
  9. * @return
  10. */
  11. public static String getSHA256(String str){
  12. MessageDigest messageDigest;
  13. String encodestr = "";
  14. try {
  15. messageDigest = MessageDigest.getInstance("SHA-256");
  16. messageDigest.update(str.getBytes("UTF-8"));
  17. encodestr = byte2Hex(messageDigest.digest());
  18. } catch (NoSuchAlgorithmException e) {
  19. e.printStackTrace();
  20. } catch (UnsupportedEncodingException e) {
  21. e.printStackTrace();
  22. }
  23. return encodestr;
  24. }
  25. /**
  26. * 将byte转为16进制
  27. * @param bytes
  28. * @return
  29. */
  30. private static String byte2Hex(byte[] bytes){
  31. StringBuffer stringBuffer = new StringBuffer();
  32. String temp = null;
  33. for (int i=0;i<bytes.length;i++){
  34. temp = Integer.toHexString(bytes[i] & 0xFF);
  35. if (temp.length()==1){
  36. //1得到一位的进行补0操作
  37. stringBuffer.append("0");
  38. }
  39. stringBuffer.append(temp);
  40. }
  41. return stringBuffer.toString();
  42. }
  43. public static String getString(byte[] data ){
  44. return byte2Hex(data);
  45. }
  46. public static byte[] SHA256(byte[] data)
  47. {
  48. // 返回值
  49. byte byteBuffer[] = {};
  50. try
  51. {
  52. // SHA 加密开始
  53. // 创建加密对象 并傳入加密類型
  54. MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
  55. // 传入要加密的字符串
  56. messageDigest.update(data);
  57. // 得到 byte 類型结果
  58. byteBuffer = messageDigest.digest();
  59. return byteBuffer;
  60. }
  61. catch (NoSuchAlgorithmException e)
  62. {
  63. e.printStackTrace();
  64. }
  65. return byteBuffer;
  66. }
  67. }