赞
踩
package org.springblade.common.utils;
import org.bouncycastle.crypto.digests.SM3Digest;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
import java.io.UnsupportedEncodingException;
public class Sm3 {
private static final String ENCODING = “UTF-8”;
/**
* SM3加密
* @param paramStr 待加密字符串
* @return 返回加密后,固定长度=32的16进制字符串
* 在需要加密的地方调用这个方法就会返回一个密文
/
public static String encrypt(String paramStr) {
//将返回的hash值转换为16进制字符串
String resultHexString = “”;
try {
//将字符串转换成byte数组
byte[] srcData = paramStr.getBytes(ENCODING);
byte[] resultHash = hash(srcData);
//将返回的hash值转换成16进制字符串
resultHexString = ByteUtils.toHexString(resultHash);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return resultHexString;
}
/*
* 返回长度为32的byte数组
* 生成对应的hash值
* @param srcData
* @return
*/
public static byte[] hash(byte[] srcData){
SM3Digest digest = new SM3Digest();
digest.update(srcData,0,srcData.length);
byte[] hash = new byte[digest.getDigestSize()];
digest.doFinal(hash, 0);
return hash;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。