Node.js bcrypt与node一起使用的替代方案是什么?

Node.js bcrypt与node一起使用的替代方案是什么?,node.js,cryptography,bcrypt,password-hash,Node.js,Cryptography,Bcrypt,Password Hash,几天来,我一直试图在我的windows计算机上安装bcrypt,但运气不佳。其中一个依赖项(Windows7SDK)不想安装,尽管我尝试了来自网络各地的许多建议,但它拒绝合作 我需要一个很好的bcrypt替代品,它没有任何依赖项。请检查,它与bcrypt完全兼容,只是没有依赖项 或者,如果您不需要加密样板文件,只需要对字符串进行加密和解密。您应该真正使用内置的加密模块来满足加密需求。它基本上是与OpenSSL的绑定,OpenSSL是一个快速、稳定、安全且经过良好审查的加密库。尝试实现您自己的加密

几天来,我一直试图在我的windows计算机上安装bcrypt,但运气不佳。其中一个依赖项(Windows7SDK)不想安装,尽管我尝试了来自网络各地的许多建议,但它拒绝合作

我需要一个很好的bcrypt替代品,它没有任何依赖项。

请检查,它与bcrypt完全兼容,只是没有依赖项


或者,如果您不需要加密样板文件,只需要对字符串进行加密和解密。

您应该真正使用内置的加密模块来满足加密需求。它基本上是与OpenSSL的绑定,OpenSSL是一个快速、稳定、安全且经过良好审查的加密库。尝试实现您自己的加密(或使用他人未经验证的加密尝试)会导致灾难

如果您想要加密数据,您所要做的就是调用,它返回可读/可写的。将数据写入流,它将使用加密的数据发出数据事件

例如:

var stream = crypto.createCipher('aes192', 'mysecretpassword');
stream.on('data', function(enc) {
    // enc is a `Buffer` with a chunk of encrypted data
});

stream.write('some secret data');
stream.end();

如果有人面临类似的问题,可以尝试用零依赖性编写的JavaScript优化,也可以与C++ BCRIPT兼容。

< P> > <强> 2020年4月24日<强>,在<代码>密码< /COD>模块

中有一个很好的内置密码散列密码的方法。
// Using the built in crypto module

const { scryptSync, randomBytes } = require("crypto");


// Any random string here (ideally should be atleast 16 bytes)

const salt = randomBytes(16).toString("hex")


// Pass the password string and get hashed password back
// ( and store only the hashed string in your database)

const getHash = (password) => scryptSync(password, salt, 32).toString("hex");


node怎么了?@josh3736我没有足够的加密经验来回答这个问题。但我注意到,大多数项目和示例都使用bcrypt,如果有其他解决方案(如下所述)具有零依赖性,这似乎很奇怪。我可能会使用其中一个解决方案,但我不确定样板是什么意思。你是说它做了一些假设吗?比如密钥应该是多少位,加密类型等等?除此之外,就更容易或更难规避而言,这两种方法在任何其他方面都是不同的吗?对,simplecrypt真的很擅长只进行简单的字符串编码和解码,而无需任何盐、哈希等配置。bcryptjs拥有来自其他模块的企业支持,例如,因此,对于任何更复杂的问题,我肯定会选择simplecrypt而不是simplecrypt。bcryptjs是否具有与bcrypt相同的安全功能?如果您正在存储密码,则不建议使用此选项。您需要一个salt,否则数据库中的所有密码都可能被泄露,例如,使用彩虹表。只是一个想法。干杯如何解密?你不能解密它。这是单向散列。要比较密码,只需对用户输入的文本进行散列,并将其与存储在一起的值进行比较。