encryptionalgorithm列表

我试图find一个strings列表,可以使用一个encryptionalgorithm来适应这个函数,取代SHA256

 crypto.createHmac("SHA256", secret).update(string).digest('base64'), 

我已经认识到crypto使用openssl ,并且这些algorithm是特定于运行node.js的每个系统的。

通过以下命令,您可以看到系统可用的所有algorithm的列表。

 openssl list-cipher-algorithms openssl list-cipher-commands 

我将这两个命令的内容输出到了这个要点 。

令我困扰的是SHA256不在这两个列表中。

我真的很喜欢明确的algorithm列表。

这里的学习是ciphershashes是不同的,使用不同的algorithm。 使用节点的crypto使用.getCiphers().getHashes()方法分别返回一个支持ciphershashes名称的数组。

 var crypto = require('crypto') console.log(crypto.getCiphers()) console.log(crypto.getHashes()) 

其中logging以下密码:

 [ 'CAST-cbc', 'aes-128-cbc', 'aes-128-cbc-hmac-sha1', 'aes-128-cfb', 'aes-128-cfb1', 'aes-128-cfb8', 'aes-128-ctr', 'aes-128-ecb', 'aes-128-gcm', 'aes-128-ofb', 'aes-128-xts', 'aes-192-cbc', 'aes-192-cfb', 'aes-192-cfb1', 'aes-192-cfb8', 'aes-192-ctr', 'aes-192-ecb', 'aes-192-gcm', 'aes-192-ofb', 'aes-256-cbc', 'aes-256-cbc-hmac-sha1', 'aes-256-cfb', 'aes-256-cfb1', 'aes-256-cfb8', 'aes-256-ctr', 'aes-256-ecb', 'aes-256-gcm', 'aes-256-ofb', 'aes-256-xts', 'aes128', 'aes192', 'aes256', 'bf', 'bf-cbc', 'bf-cfb', 'bf-ecb', 'bf-ofb', 'blowfish', 'camellia-128-cbc', 'camellia-128-cfb', 'camellia-128-cfb1', 'camellia-128-cfb8', 'camellia-128-ecb', 'camellia-128-ofb', 'camellia-192-cbc', 'camellia-192-cfb', 'camellia-192-cfb1', 'camellia-192-cfb8', 'camellia-192-ecb', 'camellia-192-ofb', 'camellia-256-cbc', 'camellia-256-cfb', 'camellia-256-cfb1', 'camellia-256-cfb8', 'camellia-256-ecb', 'camellia-256-ofb', 'camellia128', 'camellia192', 'camellia256', 'cast', 'cast-cbc', 'cast5-cbc', 'cast5-cfb', 'cast5-ecb', 'cast5-ofb', 'des', 'des-cbc', 'des-cfb', 'des-cfb1', 'des-cfb8', 'des-ecb', 'des-ede', 'des-ede-cbc', 'des-ede-cfb', 'des-ede-ofb', 'des-ede3', 'des-ede3-cbc', 'des-ede3-cfb', 'des-ede3-cfb1', 'des-ede3-cfb8', 'des-ede3-ofb', 'des-ofb', 'des3', 'desx', 'desx-cbc', 'id-aes128-GCM', 'id-aes192-GCM', 'id-aes256-GCM', 'idea', 'idea-cbc', 'idea-cfb', 'idea-ecb', 'idea-ofb', 'rc2', 'rc2-40-cbc', 'rc2-64-cbc', 'rc2-cbc', 'rc2-cfb', 'rc2-ecb', 'rc2-ofb', 'rc4', 'rc4-40', 'rc4-hmac-md5', 'seed', 'seed-cbc', 'seed-cfb', 'seed-ecb', 'seed-ofb' ] 

以下hashes

 [ 'DSA', 'DSA-SHA', 'DSA-SHA1', 'DSA-SHA1-old', 'RSA-MD4', 'RSA-MD5', 'RSA-MDC2', 'RSA-RIPEMD160', 'RSA-SHA', 'RSA-SHA1', 'RSA-SHA1-2', 'RSA-SHA224', 'RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512', 'dsaEncryption', 'dsaWithSHA', 'dsaWithSHA1', 'dss1', 'ecdsa-with-SHA1', 'md4', 'md4WithRSAEncryption', 'md5', 'md5WithRSAEncryption', 'mdc2', 'mdc2WithRSA', 'ripemd', 'ripemd160', 'ripemd160WithRSA', 'rmd160', 'sha', 'sha1', 'sha1WithRSAEncryption', 'sha224', 'sha224WithRSAEncryption', 'sha256', 'sha256WithRSAEncryption', 'sha384', 'sha384WithRSAEncryption', 'sha512', 'sha512WithRSAEncryption', 'shaWithRSAEncryption', 'ssl2-md5', 'ssl3-md5', 'ssl3-sha1', 'whirlpool' ] 

这是我的设置:

  • openssl versionOpenSSL 0.9.8zg 14 July 2015
  • node --versionv0.12.4

openssl文档有一个列出所有有效的密码string的页面: http : //www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS

SHA-256不是密码,而是哈希algorithm 。 这可能就是为什么你没有在密码列表中find它的原因。 MD5和所有各种SHAalgorithm也是如此。

事实上,哈希algorithm正是你所需要的HMAC 。 如果要基于分组密码构buildMAC,则需要使用其他一些结构,如OMAC / CMAC , PMAC或CBC-MAC 。

CAST-CBC

AES-128-CBC

AES-128-CBC-HMAC-SHA1

AES-128-CFB

AES-128-CFB1

AES-128-CFB8

AES-128-CTR

AES-128-ECB

AES-128-GCM

AES-128-OFB

AES-128-XTS

AES-192-CBC

AES-192-CFB

AES-192-CFB1

AES-192-CFB8

AES-192-CTR

AES-192-ECB

AES-192-GCM

AES-192-OFB

AES-256-CBC

AES-256-CBC-HMAC-SHA1

AES-256-CFB

AES-256-CFB1

AES-256-CFB8

AES-256-CTR

AES-256-ECB

AES-256-GCM

AES-256-OFB

AES-256-XTS

AES128

AES192

AES256

BF

BF-CBC

BF-CFB

BF-ECB

BF-OFB

河豚

山茶-128-CBC

山茶-128-CFB

山茶-128-CFB1

山茶-128-CFB8

山茶-128-ECB

山茶-128-OFB

茶花-192-CBC

茶花-192-CFB

茶花-192-CFB1

茶花-192-CFB8

茶花-192-ECB

茶花-192-OFB

茶花-256-CBC

茶花-256-CFB

茶花-256-CFB1

茶花-256 CFB8

茶花-256-ECB

茶花-256-OFB

camellia128

camellia192

camellia256

投-CBC

CAST5-CBC

CAST5-CFB

CAST5-ECB

CAST5-OFB

DES

DES-CBC

DES-CFB

DES-CFB1

DES-CFB8

DES-ECB

DES-EDE

DES-EDE-CBC

DES-EDE-CFB

DES-EDE-OFB

DES-EDE3

DES-EDE3-CBC

DES-EDE3-CFB

DES-EDE3-CFB1

DES-EDE3-CFB8

DES-EDE3,OFB

DES-OFB

DES3

DESX

DESX-CBC

ID-AES128-GCM

ID-AES192-GCM

ID-AES256-GCM

理念

IDEA-CBC

IDEA-CFB

想法-ECB

IDEA-OFB

RC2

RC2-40-CBC

RC2-64-CBC

RC2-CBC

RC2-CFB

RC2-ECB

RC2-OFB

RC4

RC4-40

RC4-HMAC-MD5

种子

种子-CBC

种子CFB

种子ECB

种子OFB

我检查了所有的密码string和我的要点 ,这是唯一的algorithm与密码创build一个HMAC。

 MD5 SHA SHA1 SHA256 SHA384