在加密和节点10未知的消息摘要
这里是我的代码,使用crypto和正常工作与节点v8.15.0部分:
const crypto = require('crypto');
...
const sign = crypto.createSign('DSA');
当我切换到节点10:
nvm install 10
node --version
v10.15.1
相同的源代码返回错误:
Error: Unknown message digest
at new Sign (internal/crypto/sig.js:26:16)
at Object.createSign (crypto.js:137:10)
如何获得DSA在节点10和密码?
其他信息:节点10个crypto.getHashes()
回报率(无DSA!):
[ 'RSA-MD4',
'RSA-MD5',
'RSA-MDC2',
'RSA-RIPEMD160',
'RSA-SHA1',
'RSA-SHA1-2',
'RSA-SHA224',
'RSA-SHA256',
'RSA-SHA384',
'RSA-SHA512',
'blake2b512',
'blake2s256',
'md4',
'md4WithRSAEncryption',
'md5',
'md5-sha1',
'md5WithRSAEncryption',
'mdc2',
'mdc2WithRSA',
'ripemd',
'ripemd160',
'ripemd160WithRSA',
'rmd160',
'sha1',
'sha1WithRSAEncryption',
'sha224',
'sha224WithRSAEncryption',
'sha256',
'sha256WithRSAEncryption',
'sha384',
'sha384WithRSAEncryption',
'sha512',
'sha512WithRSAEncryption',
'ssl3-md5',
'ssl3-sha1',
'whirlpool' ]
而在节点8,我得到(截断,因此不喜欢太多的代码):
[ 'DSA',
'DSA-SHA',
'DSA-SHA1',
'DSA-SHA1-old',
'RSA-MD4',
'RSA-MD5',
...
'whirlpool' ]
回答如下:
有一个在GitHub的仓库中Node.js的此一issue它基本上不来的事实,DSA支持已在基础OpenSSL的,这是正在使用Node.js的被删除
据this comment:
DSA-SHA1
已更名为DSS1
但:
但是,如果我在节点v10.15.1
crypto.getHashes()
运行,那么我不要太DSS1
。
所以,从我的角度来看你唯一的选择是切换到另一个签名算法,或试图找到第三方模块,实现你所需要的独立的Node.js的crypto
模块(因此,独立的OpenSSL)。
在加密和节点10未知的消息摘要
这里是我的代码,使用crypto和正常工作与节点v8.15.0部分:
const crypto = require('crypto');
...
const sign = crypto.createSign('DSA');
当我切换到节点10:
nvm install 10
node --version
v10.15.1
相同的源代码返回错误:
Error: Unknown message digest
at new Sign (internal/crypto/sig.js:26:16)
at Object.createSign (crypto.js:137:10)
如何获得DSA在节点10和密码?
其他信息:节点10个crypto.getHashes()
回报率(无DSA!):
[ 'RSA-MD4',
'RSA-MD5',
'RSA-MDC2',
'RSA-RIPEMD160',
'RSA-SHA1',
'RSA-SHA1-2',
'RSA-SHA224',
'RSA-SHA256',
'RSA-SHA384',
'RSA-SHA512',
'blake2b512',
'blake2s256',
'md4',
'md4WithRSAEncryption',
'md5',
'md5-sha1',
'md5WithRSAEncryption',
'mdc2',
'mdc2WithRSA',
'ripemd',
'ripemd160',
'ripemd160WithRSA',
'rmd160',
'sha1',
'sha1WithRSAEncryption',
'sha224',
'sha224WithRSAEncryption',
'sha256',
'sha256WithRSAEncryption',
'sha384',
'sha384WithRSAEncryption',
'sha512',
'sha512WithRSAEncryption',
'ssl3-md5',
'ssl3-sha1',
'whirlpool' ]
而在节点8,我得到(截断,因此不喜欢太多的代码):
[ 'DSA',
'DSA-SHA',
'DSA-SHA1',
'DSA-SHA1-old',
'RSA-MD4',
'RSA-MD5',
...
'whirlpool' ]
回答如下:
有一个在GitHub的仓库中Node.js的此一issue它基本上不来的事实,DSA支持已在基础OpenSSL的,这是正在使用Node.js的被删除
据this comment:
DSA-SHA1
已更名为DSS1
但:
但是,如果我在节点v10.15.1
crypto.getHashes()
运行,那么我不要太DSS1
。
所以,从我的角度来看你唯一的选择是切换到另一个签名算法,或试图找到第三方模块,实现你所需要的独立的Node.js的crypto
模块(因此,独立的OpenSSL)。