Tag: 哈希

使用pbkdf2 crypto哈希密码无法正常工作

密码安全不是我的强项。 请帮我一下 我使用node.js 4.2.3 express 4.13.3。 我发现一些例子来encryption密码和密码的pbkdf2。 这是我的代码。 var salt = crypto.randomBytes(10).toString('base64'); console.log("salt > "+salt); crypto.pbkdf2(pass, salt , 10000, 150, 'sha512',function(err, derivedKey) { pass = derivedKey.toString('hex'); }); 最终的derivedKey不包含salt。 我错过了什么? 我应该在保存之前手动join两个string吗? 为什么一些例子使用base64和其他的hex ? 获得不同的string长度? 什么是默认的,所以我可以使用它? 为什么不在salt和哈希密码中使用basic64 ? 最终的derivedKeystring是UTF8吗? 或者只有在数据库被保存的情况下才能做到这一点? 我的数据库是UTF8。 谢谢

Redis键应该在不同的数据types中是唯一的吗?

我是Redis的新手。 我有一个redis集和hset。 我可以使用相同的密钥进行设置和hset吗? 文件说钥匙应该是唯一的。 每个数据types或唯一的每个服务器是否必须是唯一的?

Javascript散列(node.js)

我有一个哈希访问键(我在Node.js编程,如果重要的话)的麻烦。 返回状态和回复时,我有一个callback: client.metadata(folder, options, function(status, reply){ //console.log(reply) console.log(reply) console.log("New hash: " + reply['hash']); }); 问题是,reply ['hash']返回undefined。 即使reply.hash是未定义的。 我怎样才能访问散列键回复? 我logging回复,它是: { "hash": "e533d2c19d236d0d4f84e2a9666659e1", "revision": 802, "rev": "32203a97cb5", "thumb_exists": false, "bytes": 0, "modified": "Wed, 04 Jan 2012 02:39:18 +0000", "path": "/foo", "is_dir": true, "icon": "folder", "root": "dropbox", "contents": [], "size": "0 bytes" } 但是当我像上面的例子那样访问hash时,它是: 新的哈希:未定义

将.NET与nodejs(crypto)进行比较时,哈希值不同

当我尝试在节点和.NET中散列相同的密码/盐组合时,我得到了不同的值。 (是的,我知道SHA1是危险的,我也试图改变这一点)。 C# byte[] unencodedBytes = Encoding.Unicode.GetBytes(password); byte[] saltBytes = Convert.FromBase64String(salt); byte[] buffer = new byte[unencodedBytes.Length + saltBytes.Length]; Buffer.BlockCopy(unencodedBytes, 0, buffer, 0, unencodedBytes.Length); Buffer.BlockCopy(saltBytes, 0, buffer, unencodedBytes.Length – 1, saltBytes.Length); byte[] hash = HashAlgorithm.Create("SHA1").ComputeHash(buffer); //This is what I need string hashedString = Convert.ToBase64String(hash); 这是我的JS var buffer = []; var unicodePassword = new Buffer(password, 'utf16le'); for […]

encryption通道的重新encryption会在Node.js中返回不同的encryption结果

我现在已经有好几个小时了,似乎在这里或其他地方找不到类似的问题。 在拼命寻找小的错别字或其他错误后,我转向你。 我第一次实现encryption,到目前为止,所有工作都已经成功完成,我使用encryption库和Node.js一起对密码进行哈希和encryption。 到目前为止,这工作得很好,但是当我尝试做迭代rehashing时,我得不到相同的密钥。 让我告诉你我的代码: 从app.get方法: var salt = crypto.randomBytes(128); var hash = crypto.createHash('sha256'); hash.update(salt.toString('base64') + request.query.password); var hashedKey = hash.digest('base64'); console.log("original pass is: " + hashedKey) var stretchedKey = crypto.pbkdf2Sync(hashedKey, salt, 1000, 128); var promise = db.User.create({ username: request.query.username.toLowerCase(), email: request.query.email.toLowerCase(), encryptedPassword: stretchedKey.toString('base64'), randomSalt: salt.toString('base64'), premium: true }); 正如你可以在上面看到的,我为新用户生成一个随机salt,将密码附加到它并散列它。 之后,我尝试拉伸它,然后将其保存在数据库中 以下是来自authentication方法的代码: var hash = […]

Webpack – 将哈希包的URL插入静态哈巴狗模板

即时通讯使用webpack pug-html-loader +文件加载器来生成一堆静态帕格模板。 我也想开始添加哈希包的文件名,但我不能解决如何将哈希文件名插入我所有的哈巴狗模板 这是如何引用我的包当前在所有的哈巴狗模板: script(src="bundle.js") link(href="bundle.css") 我怎么修改引用bundle-[chunkhash].js / bundle-[chunkhash].css] – 我需要传递一些variables到我的webpack.config.js中的pug-html-loader吗? 注意使用extract-text-plugin将我的SASS输出到.css包文件

比较两个密码哈希值 – nodejs

我正在使用encryptionhttps://nodejs.org/api/crypto.html进行密码encryption和身份validation。 我正在更改密码页面上工作,并且在确定用户提供的密码是否与现有密码具有相同的哈希值时遇到问题。 以下是我的代码。 var createSalt = function createSalt() { return crypto.randomBytes(128).toString('base64'); }; var hashPwd = function hashPwd(salt, pwd) { var hmac = crypto.createHmac('sha256', salt); return hmac.update(pwd).digest('hex'); }; //use password , create salt, hash and compare with the existing var salt = createSalt(); var passHash = hashPwd(salt,data.Password); console.log('the password is', user.PassHash === passHash); 我期待如果上面的控制台消息打印真正的现有用户密码匹配。 但是,这两个哈希似乎并不匹配。 请问我错过了什么? […]

WooCommerce的SHA256 webhook签名从不validation

我正在从woocommerce网站接收webshook到一个nodejs / express应用程序。 我试图validationwebhook的签名来certificate真实性,但是我计算的散列绝对不会与woocommerce在签名头中报告的签名相对应。 这是我用来validation真实性的代码: function verifySignature(signature, payload, key){ var computedSignature = crypto.createHmac("sha256", key).update(payload).digest('base64'); debug('computed signature: %s', computedSignature); return computedSignature === signature; } 这个函数被调用了以下参数: var signature = req.headers['x-wc-webhook-signature']; verifySignature(signature, JSON.stringify(req.body), config.wooCommence.accounts.api[config.env].webhookSecret) webhook的签名报头将签名报告为BewIV/zZMbmuJkHaUwaQxjX8yR6jRktPZQN9j2+67Oo= 。 但是,上述操作的结果是S34YqftH1R8F4uH4Ya2BSM1rn0H9NiqEA2Nr7W1CWZs= 我已经手动configuration了webhook上的秘密,正如你在上面的代码中看到的,这个秘密在快速应用程序中也是硬编码的。 所以要么是我错误的有效载荷来计算签名,要么是有其他的东西让我无法validation这些签名。 将不胜感激任何指针来帮助我解决这个问题。

我如何使用Passport.js返回到当前散列位置?

我使用Passport.js通过OAuth与Google进行身份validation(我正在使用passport-google-oauth策略)。 它工作正常,但我目前redirect到“/”,我想发送他们到“/”加上当前的哈希标签。 我可以在一个查询string参数中发送散列值,但我似乎无法将该值设置为我传递进行身份validation的对象的callbackURL属性。 有人可以提供一个例子或解释正确的方法来做到这一点? 我并不赞成使用查询string,它似乎是最直接的路线,但我打开使用会话variables或其他东西,如果这将是更容易或更好的做法。 谢谢。

为什么crypto.createHash在新版本中返回不同的输出?

问题 我有使用crypto.createHash生成md5散列的node.js模块。 最近我注意到crypto模块生成的hash在新版本中是不同的: 码 require('crypto').createHash('md5').update('¥').digest('hex') Node.js v0.10.0 输出: ab3af8566ddd20d7efc9b314abe90755 Node.js v6.1.0 输出: 07625e142e4ac5961de57472657a88c1 题 我想知道是什么原因,在新版本,我该如何解决这个问题? 更新 GitHub上的类似问题: https://github.com/nodejs/node/issues/6813 https://github.com/node-xmpp/client/issues/206