[使用SEED密码算法的NodeJS加密模块

问题描述 投票:1回答:2

我需要使用“ SEED”密码算法,过去似乎由加密模块支持。当我尝试使用crypto.getCiphers()获取当前支持的密码时,得到了以下结果:

  'aes-128-cbc',
  'aes-128-cfb',
  'aes-128-ctr',
  'aes-128-ecb',
  'aes-128-gcm',
  'aes-128-ofb',
  'aes-192-cbc',
  'aes-192-ctr',
  'aes-192-ecb',
  'aes-192-gcm',
  'aes-192-ofb',
  'aes-256-cbc',
  'aes-256-cfb',
  'aes-256-ctr',
  'aes-256-ecb',
  'aes-256-gcm',
  'aes-256-ofb',
  'des-cbc',
  'des-ecb',
  'des-ede',
  'des-ede-cbc',
  'des-ede3-cbc',
  'rc2-cbc',
  'rc4'

我尝试使用许多Node版本,结果始终相同。另外,我尝试从应用程序中使用openssl,但SEED密码不再可用。如何在我的应用程序中添加对此密码算法的支持?已通过节点12、11、10、9、8进行测试。OpenSSL版本:LibreSSL 2.6.5

TIA!

node.js encryption openssl cryptography cryptojs
2个回答
0
投票

SEED只是一个带有128位块和128位密钥的16轮Feistel网络,绝对不是我在生产中使用的东西。

关于它的价值SEED仍然存在于节点13

在运行macOS 10.15.3node.js v13.7.0上,我执行了此代码:

  1 var crypto = require('crypto')
  2 const util = require('util');
  3 util.inspect.defaultOptions.maxArrayLength = null;
  4 
  5
  6 console.log(crypto.getCiphers())

确实将SEED列为受支持的密码:

[
  'aes-128-cbc',
  'aes-128-ccm',
  'aes-128-cfb',
  'aes-128-cfb1',
  'aes-128-cfb8',
  'aes-128-ctr',
  'aes-128-ecb',
  'aes-128-gcm',
  'aes-128-ocb',
  'aes-128-ofb',
  'aes-128-xts',
  'aes-192-cbc',
  'aes-192-ccm',
  'aes-192-cfb',
  'aes-192-cfb1',
  'aes-192-cfb8',
  'aes-192-ctr',
  'aes-192-ecb',
  'aes-192-gcm',
  'aes-192-ocb',
  'aes-192-ofb',
  'aes-256-cbc',
  'aes-256-ccm',
  'aes-256-cfb',
  'aes-256-cfb1',
  'aes-256-cfb8',
  'aes-256-ctr',
  'aes-256-ecb',
  'aes-256-gcm',
  'aes-256-ocb',
  'aes-256-ofb',
  'aes-256-xts',
  'aes128',
  'aes128-wrap',
  'aes192',
  'aes192-wrap',
  'aes256',
  'aes256-wrap',
  'aria-128-cbc',
  'aria-128-ccm',
  'aria-128-cfb',
  'aria-128-cfb1',
  'aria-128-cfb8',
  'aria-128-ctr',
  'aria-128-ecb',
  'aria-128-gcm',
  'aria-128-ofb',
  'aria-192-cbc',
  'aria-192-ccm',
  'aria-192-cfb',
  'aria-192-cfb1',
  'aria-192-cfb8',
  'aria-192-ctr',
  'aria-192-ecb',
  'aria-192-gcm',
  'aria-192-ofb',
  'aria-256-cbc',
  'aria-256-ccm',
  'aria-256-cfb',
  'aria-256-cfb1',
  'aria-256-cfb8',
  'aria-256-ctr',
  'aria-256-ecb',
  'aria-256-gcm',
  'aria-256-ofb',
  'aria128',
  'aria192',
  'aria256',
  'bf',
  'bf-cbc',
  'bf-cfb',
  'bf-ecb',
  'bf-ofb',
  'blowfish',
  'camellia-128-cbc',
  'camellia-128-cfb',
  'camellia-128-cfb1',
  'camellia-128-cfb8',
  'camellia-128-ctr',
  'camellia-128-ecb',
  'camellia-128-ofb',
  'camellia-192-cbc',
  'camellia-192-cfb',
  'camellia-192-cfb1',
  'camellia-192-cfb8',
  'camellia-192-ctr',
  'camellia-192-ecb',
  'camellia-192-ofb',
  'camellia-256-cbc',
  'camellia-256-cfb',
  'camellia-256-cfb1',
  'camellia-256-cfb8',
  'camellia-256-ctr',
  'camellia-256-ecb',
  'camellia-256-ofb',
  'camellia128',
  'camellia192',
  'camellia256',
  'cast',
  'cast-cbc',
  'cast5-cbc',
  'cast5-cfb',
  'cast5-ecb',
  'cast5-ofb',
  'chacha20',
  'chacha20-poly1305',
  'des',
  'des-cbc',
  'des-cfb',
  'des-cfb1',
  'des-cfb8',
  'des-ecb',
  'des-ede',
  'des-ede-cbc',
  'des-ede-cfb',
  'des-ede-ecb',
  'des-ede-ofb',
  'des-ede3',
  'des-ede3-cbc',
  'des-ede3-cfb',
  'des-ede3-cfb1',
  'des-ede3-cfb8',
  'des-ede3-ecb',
  'des-ede3-ofb',
  'des-ofb',
  'des3',
  'des3-wrap',
  'desx',
  'desx-cbc',
  'id-aes128-CCM',
  'id-aes128-GCM',
  'id-aes128-wrap',
  'id-aes128-wrap-pad',
  'id-aes192-CCM',
  'id-aes192-GCM',
  'id-aes192-wrap',
  'id-aes192-wrap-pad',
  'id-aes256-CCM',
  'id-aes256-GCM',
  'id-aes256-wrap',
  'id-aes256-wrap-pad',
  'id-smime-alg-CMS3DESwrap',
  'idea',
  'idea-cbc',
  'idea-cfb',
  'idea-ecb',
  'idea-ofb',
  'rc2',
  'rc2-128',
  'rc2-40',
  'rc2-40-cbc',
  'rc2-64',
  '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',
  'sm4',
  'sm4-cbc',
  'sm4-cfb',
  'sm4-ctr',
  'sm4-ecb',
  'sm4-ofb'
]

0
投票

问题不是NodeJS的版本,这是LibreSSL库的问题,因为它是特定于国家/地区的密码,所以可能不包含它。

其文档内容为:

包括AES,河豚,CAST,Chacha20,IDEA,DES,RC2和RC4的对称密码

[SE0中也没有SEED。

但是,如果我查看系统上存在的OpenSSL v1.1.1c,则SEED密码仍列在EVP_EncryptInit documentation页面中。因此,您需要使用其他加密库作为后端。

© www.soinside.com 2019 - 2024. All rights reserved.