java的sm2 与 py的sm2

最近在 用 py解 java的sm2 加密,双方密钥一致,加解密都失败.找了一圈,没有交叉解密的,头大,有大佬能分析一下这两个东西差在哪么

1 Like

帮顶。以前遇到差不多的问题,不过是sm4,最后还是失败了,老老实实用Java写了。

这个很多都是实现有点差异。

不同实现会有差异的

要确认在java和py里使用的密钥和数据格式是一致的,一般这种交叉验证失败,都是数据的处理方式不一样,可能一个取的是ascii码,一个是取的hex值,取的数据格式不同,怎么校验都过不去

java bouncy castle 库sm2秘钥默认格式是 c1c2c3, 标准的是c1c3c2,bc支持修改秘钥格式,你改下格式看看

可以用下面工具进行python的加解密验证

Leon406/ToolsFx: 基于kotlin+tornadoFx的跨平台密码学工具箱.包含编解码,编码转换,加解密, 哈希,MAC,签名,大数运算,压缩,二维码功能,ctf等实用功能,支持插件 (github.com)

1 Like

参看SM2加密的跨语言问题
a91820d92e685cf06c5529cbff66c32eee500eb8