Open sunyb3 opened 1 year ago
java自己的可以加签验签
java这里去导入私钥的时候用的BC库的base64.decode,Python的实现方式是咋样的?
Hex.toHexString(((BCECPublicKey) publicKey).getQ().getEncoded(false)); String publicKeyHex = Hex.toHexString(((BCECPublicKey) publicKey).getQ().getEncoded(false));
2.1.2 与其他语言的密钥传输编码问题 Java的密钥一般直接使用 PrivateKey.getEncoded() 或者 PublicKey.getEncoded() 获得密钥,然后直接使用Base64或者Hex将密钥转成可见字符串,但是Sm2算法这样保存的密钥其他语言的工具大多数是解析不了的。
参考链接 https://blog.csdn.net/quhan97/article/details/124458753
java生成的公私钥与python的有点出入,Python用java的私钥签名后,验签失败 java生成的公私钥对: KeyPair keyPair = generateSm2KeyPair(); String pri = java.util.Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded()); String puk = java.util.Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded());
pubKey:MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEtKnAlS64hZCIEpX42KY6VTgHoySczY8ELCHiat7wObuyWAiItnDP9HmPXZiLMzWmeCNlzmZsu/MpVjtLyBRd9Q== priKey:MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgQ5HEtGmOW7XrQFYJmBMsu0o1tCkNYvaRhf04vzdYxUugCgYIKoEcz1UBgi2hRANCAAS0qcCVLriFkIgSlfjYpjpVOAejJJzNjwQsIeJq3vA5u7JYCIi2cM/0eY9dmIszNaZ4I2XOZmy78ylWO0vIFF31 (不知道对不对,被网上的教程弄晕了) python 代码: