Dae*_*ast 8 javascript rsa node.js public-key
我正在创建一个ACME客户端,我需要找到我的 RSA 公钥的模数和指数,我使用以下代码生成该密钥:
crypto.generateKeyPairSync('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem'
}
});
Run Code Online (Sandbox Code Playgroud)
我需要模数和指数,以便我可以在JWS的JWK部分中使用它们:
alg: 'RS256',
jwk: {
kty: 'RSA',
e: '...',
n: '...'
},
nonce,
url: directory.newAccount
Run Code Online (Sandbox Code Playgroud)
我已成功使用以下行将公钥从base64解码为十六进制,但我不确定下一步该怎么做:
Buffer.from(publicKey, 'base64').toString('hex');
Run Code Online (Sandbox Code Playgroud)
如何在 Node.js 中找到 RSA 公钥的模数和指数?
我发现 Node.js 默认使用公共指数 65537:Node.js 文档。
这就像小菜一碟一样简单;它不需要第三方库
import { createPublicKey } from 'crypto'
const pemPublicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphRAj+tRfbrYwnSFbWrj
...
vQIDAQAB
-----END PUBLIC KEY-----
`
const publicKey = createPublicKey(pemPublicKey)
console.log(publicKey.export({ format: 'jwk' }))
Run Code Online (Sandbox Code Playgroud)
它将返回对象:
{
kty: 'RSA',
n: [modulus string],
e: [exponent string]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7295 次 |
| 最近记录: |