这是我的一部分代码,使用了crypto,在Node v8.15.0下运行良好:
const crypto = require('crypto');
...
const sign = crypto.createSign('DSA');
当我切换到Node 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)
如何在Node 10和加密中获取DSA?
附加信息: Node 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' ]
当我在Node 8中运行以下代码时(因为SO不喜欢太多的代码,所以进行了截断):
[ 'DSA',
'DSA-SHA',
'DSA-SHA1',
'DSA-SHA1-old',
'RSA-MD4',
'RSA-MD5',
...
'whirlpool' ]