在Node.js的加密模块中获取可用的哈希算法。

4
我希望了解是否有一种方法(例如API方法)可以在NodeJs加密模块中知道所有可用的哈希算法(以及确切的输入名称)。
根据官方文档,在createHash函数中,它说:

https://nodejs.org/api/crypto.html#crypto_crypto_createhash_algorithm_options

该算法依赖于平台上OpenSSL版本支持的可用算法。例如,'sha256'、'sha512'等。在最近的OpenSSL版本中,openssl list -digest-algorithms (对于旧版本的OpenSSL,请使用openssl list-message-digest-algorithms)将显示可用的摘要算法。

因此,根据我运行的节点版本中的OpenSSL版本,我将拥有不同的哈希算法选项?是否有任何方法(如API方法)可以直接了解已安装的加密模块中可用的哈希算法?
谢谢

“直接”是什么意思?你想看到什么样的界面?你可以随时使用try-catch来查看所需的哈希是否可用。 - President James K. Polk
1个回答

6

根据官方文档,Node的crypto具有getHashes() API。

示例列表

let crypto = require('crypto');
let listOfSupportedHashes = crypto.getHashes();
console.log('Total supported hashes : ', listOfSupportedHashes.length);

你也可以在Nodejs环境之外使用*nix命令openssl list -digest-algorithms获得相同的结果。 - Sergey Kaunov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接