Articles of cryptography

我怎样才能解密一个HMAC?

我可以使用以下方法制作HMAC: var encrypt = crypto.createHmac("SHA256", secret).update(string).digest('base64'); 我正试图用这个秘密解密一个编码的HMAC: var decrypt = crypto.createDecipher("SHA256", secret).update(string).final("ascii"); 以下是不成功的。 我如何用密钥解密HMAC? 我得到以下错误: node-crypto : Unknown cipher SHA256 crypto.js:155 return (new Decipher).init(cipher, password); ^ Error: DecipherInit error

如何用密码创build随机encryption哈希

我想用node.jsencryption库创build一个salt-hash,而不必parsing任何硬编码的数据。 硬编码是什么意思? var salt, hardcodedString = "8397dhdjhjh"; crypto.createHmac('sha512', hardcodedString).update(salt).digest("base64"); 没有任何其他方式如何创build一个随机string,而不使用原始的JavaScript,随机函数或硬编码的东西? 问候 UPDATE var Crypto = require('crypto') , mongoose = require('mongoose'); module.exports = mongoose.model('User', new mongoose.Schema({ username: { type: String , required: true , index: { unique: true, sparse: true } , set: toLower }, email: { type: String , required: true , index: { unique: […]

使用公钥在Node.JSencryption中validation签名

有没有一种好的方法来validationNode.JS(v0.4 +)中的签名与公钥? 目前的encryption模块允许使用证书,但不能使用公钥。 例如: var crypto = require("crypto"); verifier = crypto.createVerifier("sha1"); verifier.update("signed data"); verifier.verify(CERT, signature); variablesCERT需要签名的证书(我猜公钥是从那个拉),但我拥有的是公钥而不是证书。 只有坚实的方式来实现这似乎是倾倒的数据的内容,公钥和签名到文件并执行openssl dgst fs.writeFileSync("public.key", pubkey); fs.writeFileSync("sig.sha1", signature); fs.writeFileSync("data.txt", data); exec("openssl dgst -sha1 -verify public.key -signature sig.sha1 data.txt", …) 但是,每次我需要validation签名时创build(和删除)文件看起来都是浪费。 任何好的想法如何做得更好? 更新2011-08-03 Node.js v0.5中的encryption模块允许使用证书和公钥 (RSA或X.509)

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列表。

用Node.js和MongoDB存储密码

我正在寻找一些如何使用node.js和mongodb安全地存储密码和其他敏感数据的例子。 我希望一切都使用一个独特的盐,我将存储在mongo文件中的哈希旁边。 对于身份validation,我只需要salt和encryptioninput,并将其匹配到存储的散列? 我是否需要解密这些数据?如果有,我该怎么做? 私人密钥,甚至腌制方法如何安全地存储在服务器上? 我听说AES和Blowfish都是很好的select,我应该用什么? 如何devise这个例子将是非常有帮助的! 谢谢!