到处都找不到资料。我是计算机安全方面的菜鸟,所以我的问题可能听起来有点愚蠢。
我知道我们可以使用 HTTPS 与 Verdaccio 通信,我们可以使用 htpasswd 设置身份验证,所以我猜测 Verdaccio npm 注册表配置为使用 HTTPS 并且身份验证是加密的。如果我是对的,用于加密注册表的算法是什么?
到处都找不到资料。我是计算机安全方面的菜鸟,所以我的问题可能听起来有点愚蠢。
我知道我们可以使用 HTTPS 与 Verdaccio 通信,我们可以使用 htpasswd 设置身份验证,所以我猜测 Verdaccio npm 注册表配置为使用 HTTPS 并且身份验证是加密的。如果我是对的,用于加密注册表的算法是什么?
Verdacciocrypto.createCipher(algorithm, password[, options])默认用于加密令牌。
一个简单的例子是:
import { createDecipher, createCipher, createHash, pseudoRandomBytes, Hash } from 'crypto';
const const payload = Buffer.from(`${name}:${password}`, 'utf8'));
const c = createCipher('aes192', SOME_RANDOM_SALT_VALUE);
const b1 = c.update(payload);
const b2 = c.final();
return Buffer.concat([b1, b2]);
此外,它可以选择使用标准 JWT (jsonwebtoken),但默认情况下未启用。
根据文档,您的问题的可能答案可能是
该算法依赖于 OpenSSL,例如“aes192”等。在最近的 OpenSSL 版本中,openssl list -cipher-algorithms(旧版本 OpenSSL 的 openssl list-cipher-algorithms)将显示可用的密码算法。