最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在加密和节点10未知的消息摘要

IT培训 admin 4浏览 0评论

在加密和节点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)。

发布评论

评论列表 (0)

  1. 暂无评论