1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package com.miniframe.utils;
- import java.io.UnsupportedEncodingException;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- public class SHA256Utils {
-
- /**
- * 利用java原生的类实现SHA256加密
- * @param str 加密后的报文
- * @return
- */
- public static String getSHA256(String str){
- MessageDigest messageDigest;
- String encodestr = "";
- try {
- messageDigest = MessageDigest.getInstance("SHA-256");
- messageDigest.update(str.getBytes("UTF-8"));
- encodestr = byte2Hex(messageDigest.digest());
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- return encodestr;
- }
- /**
- * 将byte转为16进制
- * @param bytes
- * @return
- */
- private static String byte2Hex(byte[] bytes){
- StringBuffer stringBuffer = new StringBuffer();
- String temp = null;
- for (int i=0;i<bytes.length;i++){
- temp = Integer.toHexString(bytes[i] & 0xFF);
- if (temp.length()==1){
- //1得到一位的进行补0操作
- stringBuffer.append("0");
- }
- stringBuffer.append(temp);
- }
- return stringBuffer.toString();
- }
- public static String getString(byte[] data ){
- return byte2Hex(data);
- }
- public static byte[] SHA256(byte[] data)
- {
- // 返回值
- byte byteBuffer[] = {};
- try
- {
- // SHA 加密开始
- // 创建加密对象 并傳入加密類型
- MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
- // 传入要加密的字符串
- messageDigest.update(data);
- // 得到 byte 類型结果
- byteBuffer = messageDigest.digest();
- return byteBuffer;
- }
- catch (NoSuchAlgorithmException e)
- {
- e.printStackTrace();
- }
- return byteBuffer;
- }
- }
|