5. .NET BC库解密,密文前要加 “04”,否则会报 Invalid point encoding XX 。如果加密结果是BASE64的,先把BASE64转16进制字符串,再判断是否04开头。 如果JAVA源码,固定截取的头2位,那么就不用判断是否04开头了,直接写死:javaSM2 = "04" + javaSM2; 生成一组国密公私钥: 私钥:FAB8BBE670FAE338C9E9382...
4. .NET BC库SM2加密结果会带04,如果JAVA 那边报 Invalid point encoding 错误,删除加密结果前的04。如果对方要的是BASE64的加密结果,我们可以先转16进制字符串,裁掉04,再转BASE64。string newCipherText = Hex.ToHexString(bysm2keyEncrypted);if (newCipherText.StartsWith("04")){ newCipherText = newCiphe...
X9ECParameters sm2ECParameters = GMNamedCurves.getByName(CRYPTO_NAME_SM2); // 构造ECC算法参数,曲线方程、椭圆曲线G点、大整数N ECDomainParameters domainParameters = new ECDomainParameters(sm2ECParameters.getCurve(), sm2ECParameters.getG(), sm2ECParameters.getN()); //提取公钥点 ECPoint pukPoint = ...
SM2KeyPair aKeyPair = sm02.generateKeyPair(); KeyExchange aKeyExchange = new KeyExchange(aID,aKeyPair); String bID = "BBBBBBBBBBBBB"; SM2KeyPair bKeyPair = sm02.generateKeyPair(); KeyExchange bKeyExchange = new KeyExchange(bID,bKeyPair); TransportEntity entity1 = aKeyExchange.keyExc...
System.arraycopy(value,32, y,0,32);BigIntegerX=newBigInteger(1, x);BigIntegerY=newBigInteger(1, y);ECPointQ=getSM2Curve().createPoint(X, Y);returnnewECPublicKeyParameters(Q, getECDomainParameters()); }publicstaticbyte[] sign(byte[] privateKey,byte[] iv,byte[] message)throwsCryptoExceptio...
INVALID_ENCODING - Static variable in exception javacardx.security.cert.CertificateException Certificate encoding exception INVALID_INIT - Static variable in exception javacard.security.CryptoException This reason code is used to indicate that the signature or cipher object has not been correctly initialize...
ECPoint pukPoint = sm2ECParameters.getCurve().decodePoint(java.util.Base64.getDecoder().decode(publicKey)); // 公钥前面的02或者03表示是压缩公钥,04表示未压缩公钥, 04的时候,可以去掉前面的04 ECPublicKeyParameters publicKeyParameters = new ECPublicKeyParameters(pukPoint, domainParameters); ...
gm.sm2; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.StringWriter; import java.io.*; import java.math.BigInteger; import java.security.*; import java.security.cert.CertificateEncodingException; @@ -13,6 +10,7 @@ import java.security....
代码:SM2Util package GMSM; import org.bouncycastle.asn1.gm.GMNamedCurves; import org.bouncycastle.asn1.x9.X9ECParameters; import org.bouncycastle.crypto.CryptoException; import org.bouncycastle.crypto.InvalidCipherTextException; import org.bouncycastle.crypto.engines.SM2Engine; import org.bouncycastle.cryp...
Treasure是一个Java技术生态项目,涵盖了单体、微服务、DDD等架构实践,以兴趣、学习目的、技术积累为理念,逐步完善迭代。主要包含学习成长过程中一些技术点、工作中积累的一些心得,面试中一些业务场景模拟及解决方案一些常见、通用业务的解决方案、合理应用设计模式进行一