【发布时间】:2021-07-17 02:28:22
【问题描述】:
我有以下使用 JS 生成的私钥和公钥:
priv: auLHORUBmv5n48jUDA1TskAmJWFi4TFEmjE1GjgjEB8
pub : BFvn-Qk8HWPwgI5ZgCiWxJV5SYdTXbkVz66sgoEslLxotftRGLEOeIPXVcnQD95eETqW9zM7ejB1MqCc0tvR-0g
要生成的代码(JavaScript):
const pair = generateKeyPairSync('ec', { namedCurve: 'prime256v1' })
const privateKeyDer = pair.privateKey.export({ format: 'der', type: 'pkcs8' })
const privateRaw = privateKeyDer.slice(36, 68)
const publicRaw = privateKeyDer.slice(73)
console.log(`priv: ${webSafe64(privateRaw)}`)
console.log(`pub : ${webSafe64(publicRaw)}`)
现在,我的 Python 项目需要使用 cryptography.hazmat.primitives.serialization.load_der_public_key() 加载公钥
load_der_public_key(base64.b64decode(publicRaw))
我似乎不知道该怎么做。不断报错:
Could not deserialize key data. The data may be in an incorrect format or it may be encrypted with an unsupported algorithm.
试图将该字符串转换为字节,并将base64转换为字节,但没有任何运气。
【问题讨论】:
标签: python encryption public-key-encryption elliptic-curve