JuneAndGreen / sm-crypto

国密算法js版
MIT License
894 stars 245 forks source link

sm2加密报错 #68

Closed qiuf2004 closed 11 months ago

qiuf2004 commented 2 years ago

import { sm2 } from 'sm-crypto'; sm2.doEncrypt(oldPassword, publicKey, 1) 报错如下: image

qiuf2004 commented 2 years ago

后端生成的publicKey,前端加密报错

qiuf2004 commented 2 years ago

公钥转成点的时候,publicKey是null

changhr2013 commented 2 years ago

给一组测试数据看看,一般是数据格式问题@qiuf2004

changhr2013 commented 2 years ago

@qiuf2004 你好,看你给的公钥是经过 ASN1 编码的格式,这个 js 库目前公钥的格式只支持原始未编码的公钥,建议你们后端对公钥做一下处理,传递原始公钥给你用,例如上面你给出的公钥,DER 解码后,得到 X、Y 点,添加压缩标识位,编码为 Hex 格式为:

045f873cc621716b4b58f1db8d23a776bfd7a5fd5a3fc1688e668477059bc917ef6df1e99ada6fbd4b08fb3e816ecbffe2f7b58c7f2540281b002221bfae09eea4