【发布时间】:2021-03-22 01:10:24
【问题描述】:
我使用ssh-keygen rsa 生成了一个 RSA 密钥对。生成的公钥如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAA...
当我尝试在 Node.js 中使用 crypto 来加密纯字符串时,
const fs = require('fs');
const { publicEncrypt } = require('crypto');
const publicKey = fs.readFileSync('$path/to/publicKey').toString();
const encryptedToken = publicEncrypt(publicKey, Buffer.from('some plain string'));
它会给出以下错误:
Error: error:0909006C:PEM routines:get_name:no start line
at node:internal/crypto/cipher:78:12
...
library: 'PEM routines',
function: 'get_name',
reason: 'no start line',
code: 'ERR_OSSL_PEM_NO_START_LINE'
我对密码学很陌生,只知道公钥/私钥加密的一般概念,因此非常感谢任何建议。
编辑:
我知道crypto 带有生成密钥对的方法,所以我想问题更多是关于为什么ssh-rsa 公钥在这里不起作用。
【问题讨论】: