加密算法:
public class EncryptUtil {
private String key = "sldkjfoisuerfj54565dsfgkjldijglksdfg455645sdfksdjkfposd455555488978465546sdlkfsdkjlfsdjkl";
private static EncryptUtil instance;
public static synchronized EncryptUtil getInstance() {
if (instance == null) {
synchronized (EncryptUtil.class) {
instance = new EncryptUtil();
}
}
return instance;
}
/**
* M2加密
*
* @param str
* @return
*/
public String getEncryptM2(String str) {
X9ECParameters sm2ECParameters = GMNamedCurves.getByName("sm2p256v1");
ECDomainParameters domainParameters = new ECDomainParameters(sm2ECParameters.getCurve(), sm2ECParameters.getG(), sm2ECParameters.getN());
//提取公钥点
ECPoint pukPoint = sm2ECParameters.getCurve().decodePoint(Hex.decode(key));
//刚才的私钥Hex,先还原私钥
ECPublicK