sm-crypto
sm-crypto copied to clipboard
前端正常加解密,java无法解密
前端用Java后端传递的16进制公钥正常加解密,后端拿到前端给的密文无法解密。 但是用https://github.com/Saberization/SM2所生成的密文,后端可以正常解密。但是没有前端解密的方法。 密文是 16进制格式
后端用的国密工具是gmhelper,还是自己封装的bouncycastle?如果是前者,那么可能是cipherMode没有选对,或者密文不是以0x04字节开头
根据标准,密文前面需要加上0x04
大佬好, 请教一个问题 , 我使用的是c#后端 同秘钥情况下,前后都能加解密,但是就是不能交叉加解密 这是为啥呢,有什么解决办法吗
@756616071 看看密文第一个字节是不是0x04
在后端看是不是 0x40吗
不兼容有几个常见问题,比如第一个字节有0x04,C1C2C3/C1C3C2,需要查文档
没有 0x40
后端使用的是c1c2c3
@756616071 看源码,两边的标准必须一样
标准指的是字符串标准吗
请问这个问题解决了吗?我也遇到了,nodejs 加密解密正常,java 那边解密失败;java 给的密钥是 16位的,我转成 32位的 hex 进行加密,但是 java 解密不了
给后来的兄弟提醒下,一般后端是以04开头密文来解密的, 该库没有属于去除04的,解密是库的函数自动加上的, 其他的后端库如go,属于密文必须04开头的,所以需要在传给后端密文时候手动加上04