如何在节点js中创建密钥对象?

时间:2016-07-19 16:08:40

标签: javascript node.js rsa

我最近几天一直试图在节点中解密RSA base64字符串。 但是大多数模块都记录不清,或者我遗漏了一些东西。 问题是私钥是密码保护的,因此要使用crypto.privateDecrypt(private_key,buffer),需要将密钥作为对象插入。

private_key可以是对象或字符串。如果private_key是一个字符串,则将其视为没有密码短语的密钥,并将使用RSA_PKCS1_OAEP_PADDING。如果private_key是一个对象,它将被解释为带有键的哈希对象:

key : <String> - PEM encoded private key
passphrase : <String> - Optional passphrase for the private key
padding : An optional padding value, one of the following:
crypto.constants.RSA_NO_PADDING
crypto.constants.RSA_PKCS1_PADDING
crypto.constants.RSA_PKCS1_OAEP_PADDING

所有填充都在crypto.constants中定义。

由于节点js不是我的原生框架,有人可以告诉我如何创建所述对象吗?我已经有了PEM字符串和密码短语。

提前致谢。

1 个答案:

答案 0 :(得分:1)

Nodejs实际上不是一个框架,更像是一个Javascript引擎...... 我想你可以在这里使用纯Javascript:

private_key = {
    key: 'PEM encoded private key',
    passphrase: 'Optional passphrase for the private key',
    padding: crypto.constants.RSA_PKCS1_OAEP_PADDING
}