梵印  bingo 2022-02-14 15:58 采纳率: 87.5%
浏览 469
已结题

java如何实现前端的CryptoJS.SHA256加密方法


var zdwwsignature = CryptoJS.SHA256(timestamp + 'fTN2pfuisxTavbTuYVSsNJHetwq5bJvC' + 'QkjjtiLM2dCratiA' + timestamp)
    .toString(CryptoJS.enc.Hex)
    .toUpperCase();
  • 写回答

2条回答 默认 最新

  • 李同学va 2022-02-15 09:54
    关注
    import java.io.UnsupportedEncodingException;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class SHA256 {
        
        /**
         *  利用java原生的摘要实现SHA256加密
         * @param str 加密后的报文
         * @return 密文
         */
        public static String getSHA256StrJava(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();
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 修改了问题 2月14日
  • 创建了问题 2月14日