duanhongyi / gmssl

a python crypto for sm2/sm3/sm4
MIT License
479 stars 140 forks source link

公私钥格式问题 #42

Open yangjian1218 opened 3 years ago

yangjian1218 commented 3 years ago

不管是从java生成的秘钥还是利用支付宝助手生成的国密秘钥,或者利用gmssl工具或者opensll生成的秘钥, 格式跟你的例子完全不一样.你的公私钥是从哪里获取的?在sm2加密跟解密都能进行,但是解密出来的结果跟原始结果不一样. 然而用你给的公私钥例子是可以得到结果一致的. private_key= "aqSqeYxpKPGhCGG0e+B5MCeT/uEcihdFpyu67gr6FF/gzbIvgVl9CuY6VoNXNxd4i1hYPHHoqq81fTwtGc+TTLWdGQPHLHrSaONX+YiQLcXRfHsET61ioI045uaHh5Gy3jzzBPwXSVTzqi0o11+SeceQq1HawAZvvhJ9fz9fVGw=" public_key="MFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEEJXvWKS6D0znM9rL2a7vHxT1z/zMWLvS2fYs/eqkr0S5KjQFMr0ToIDDn1/GUmbtgHBa6GF4TL7t+sE0ppzUkw==" private_key=base64.b64decode(private_key).hex() # 转16进制 public_key=base64.b64decode(public_key).hex()

Arnie97 commented 2 years ago

这个库看起来并不能处理公钥开头的 Compressed Form (0x02, 0x03) 和 Uncompressed Form (0x04) 标识位。#37

peanut-cc commented 2 years ago

这个库看起来并不能处理公钥开头的 Compressed Form (0x02, 0x03) 和 Uncompressed Form (0x04) 标识位。#37

这个是不是可以在代码里处理一下,来避开这个问题,我今天也碰到这个问题了