Tag: bcrypt

保持用户匿名 – 安全数据库唯一选项 – 一般思路?

我正在研究一个Web应用程序,在那里正在考虑如何保持用户的身份完全匿名。 但是我已经得出结论 ,除了专注于保护数据库免遭黑客攻击之外,我可以做的不多。 这是在StackOverflow的一般共识,还是有我可能错过了任何方法? 所以我想: 然而,直接的encryption哈希和盐会导致与用户联系的各种原因。 密码重置。 我可以保存恢复问题/答案,但当然,答案将需要可读性,以打败事情。 还有一点就是说他们忘记了这些安全问题或我在注册时产生的用户名。 没有办法将他们链接到一个帐户。 还有什么想到(假设我征服了上述)限制重复的用户。 如果我在加工过程中进行哈希/腌制search会相当“沉重”? 我可以简单地保留一个使用的电子邮件的长长的名单,但那么问题再次链接到一个现有的帐户? 有兴趣听到你的想法。 谢谢。

在Node.js中$ 2y bcrypt哈希

我正在处理与$2y哈希旧数据库。 我已经深入了解了这一点,还偶然发现了 $2a和$2y之间的差异。 我查看了bcrypt的节点模块,它似乎生成并比较了只有$2a哈希值。 https://github.com/ncb000gt/node.bcrypt.js/issues/175 https://github.com/ncb000gt/node.bcrypt.js/issues/349 https://github.com/ncb000gt/node.bcrypt.js/issues/213 我发现一个网站,生成$2y哈希,所以我可以testing他们与bcrypt 。 http://aspirine.org/htpasswd_en.html 以下是stringhelloworld的$2y哈希示例。 helloworld:$2y$10$tRM7x9gGKhcAmpeqKEdhj.qRWCr4qoV1FU9se0Crx2hkMVNL2ktEW 似乎模块无法validation$2y哈希值。 这是我的testing。 var Promise = require('bluebird') var bcrypt = require('bcrypt') var string = 'helloworld' Promise.promisifyAll(bcrypt) // bcrypt.genSalt(10, function(err, salt) { // bcrypt.hash(string, salt, function(err, hash) { // console.log(hash) // }) // }) var hashesGeneratedUsingBcryptModule = [ '$2a$10$6ppmIdlNEPwxWJskPaQ7l.d2fblh.GO6JomzrcpiD/hxGPOXA3Bsq', '$2a$10$YmpoYCDHzdAPMbd9B8l48.hkSnylnAPbOym367FKIEPa0ixY.o4b.', '$2a$10$Xfy3OPurrZEmbmmO0x1wGuFMdRTlmOgEMS0geg4wTj1vKcvXXjk06', '$2a$10$mYgwmdPZjiEncp7Yh5UB1uyPkoyavxrYcOIzzY4mzSniGpI9RbhL.', '$2a$10$dkBVTe2A2DAn24PUq1GZYe7AqL8WQqwOi8ZWBJAauOg60sk44DkOC' ] var […]

bcrypt不能用npm安装(Mac OS X 10.9 – Node v0.10.22)

系统规格:Mac OS X 10.9节点v0.10.22 尝试安装bcrypt时出现以下错误。 任何关于如何解决这个问题的build议? 任何帮助将不胜感激。 > bcrypt@0.7.6 install /Users/eDawg/Desktop/eggstage/node_modules/bcrypt > node-gyp rebuild CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o ../src/blowfish.cc:47:10: fatal error: 'sys/types.h' file not found #include <sys/types.h> ^ 1 error generated. make: *** [Release/obj.target/bcrypt_lib/src/blowfish.o] Error 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23) gyp […]

使用BCrypt和Sequelize模型

我试图用我的sequelize模型使用bcrypt-nodejs包,并试图按照教程将哈希合并到我的模型中,但是我在generateHash得到一个错误。 我似乎无法弄清楚这个问题。 有没有更好的方法来joinbcrypt? 错误: /Users/user/Desktop/Projects/node/app/app/models/user.js:26 User.methods.generateHash = function(password) { ^ TypeError: Cannot set property 'generateHash' of undefined at module.exports (/Users/user/Desktop/Projects/node/app/app/models/user.js:26:27) at Sequelize.import (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/sequelize.js:641:30) 模型: var bcrypt = require("bcrypt-nodejs"); module.exports = function(sequelize, DataTypes) { var User = sequelize.define('users', { annotation_id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, firstName: { type: DataTypes.DATE, field: 'first_name' }, lastName: […]

asynchronous或同步bcrypt函数使用node.js为了生成哈希?

我目前正在尝试在node.js中为我的项目制作身份validation模块? 我已经看到了一些使用bcrypt生成哈希的例子 https://github.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.js https://github.com/Turbo87/locomotive-passport-boilerplate/blob/master/app/models /account.js 但是,由于某些原因,他们正在使用bcrypt.hashSync()函数。 由于bcrypt是很好的,因为它很费时,为了不阻止代码,使用asynchronous函数不是更明智吗,即: User.virtual('password') .get( function () { return this.hash; }) .set( function (password) { bcrypt.hash('password', 10, function(err, hash) { this.hash = hash; }); }); 你能解释一下我哪个更好,为什么? 谢谢!

Node.js密码哈希bcrypt替代使用encryption

我实际上使用bcrypt模块来散列和比较哈希密码。 我想要做的是删除bcrypt模块,并使用默认crypto库散列和比较密码。 这可能吗? 这会比使用node-bcrypt更安全吗? 你有任何示例/教程/文档/链接如何做? 或者我正在做这样的事实: bcrypt.hash(string,secret_key) bcrypt.compare(string,string,secret_key); 如果可能的话,我只想复制这个encryption: crypto.hash(string,secret_key) crypto.compare(string,string,secret_key);

Nodejs bcrypt库

我使用nodejs bcrypt库来获得更好的密码保护。 我不知道如何使用它,但我到目前为止: //A module containing this login function: login: function(credentials,req,res) { //"credentials" is containing email and password from login form var query = 'SELECT password, email FROM users WHERE email = ? LIMIT 1'; client.query(query,[credentials.email], function(err, results) { if (results[0]) { //Compare passwords if (bcrypt.compareSync(credentials.password, results[0].password)) { //Set session data and redirect to restricted […]

无法在Centos Server上安装bcrypt node.js模块

我试图在CentOS服务器上安装bcrypt,但是我得到以下错误: info postuninstall bcrypt@0.5.0 ERR! bcrypt@0.5.0 install: `make build` ERR! `sh "-c" "make build"` failed with 2 ERR! ERR! Failed at the bcrypt@0.5.0 install script. ERR! This is most likely a problem with the bcrypt package, ERR! not with npm itself. ERR! Tell the author that this fails on your system: ERR! make build ERR! […]

密码哈希+盐如何工作

我虽然我理解哈希和腌制密码,但似乎我有一些误解。 我正在为nodejs中的我的网站创build一个用户帐户系统。 我理解的方式是,当用户创build一个密码时,我们生成一个随机salt,将其附加到密码,然后散列该string。 我们还可以添加一个工作因子,使哈希缓慢工作,并防范蛮力攻击。 我们将salt和散列一起存储在我们的数据库中,并validation一个login尝试,我们用储存的salt和密码尝试重复上述过程(在服务器上),并检查哈希是否匹配。 似乎nodejs中的bcrypt模块与我对散列的解释不一致。 这是来自http://codetheory.in/using-the-node-js-bcrypt-module-to-hash-and-safely-store-passwords/上的一个例子 var salt = bcrypt.genSaltSync(10); var hash = bcrypt.hashSync("my password", salt); 首先,为什么工作因素适用于盐而不是哈希? 如果有人用暴力攻击,他们会运行哈希函数是否正确? 哈希函数是不是我们需要慢一点? 我也对bcryptvalidation感到困惑: bcrypt.compareSync("my password", hash); 即使两个用户select相同的密码,我们也需要哈希值是独一无二的,这是否是盐点? 那么为什么我们不这样做呢? bcrypt.compareSync("my password"+salt, hash);

validation在php中生成的nodejs中的密码哈希值

我的php代码使用password_hash生成一个哈希,我将其存储在数据库中。 以下是PHP代码: $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost)); 我想validation/检查在nodejs这个散列的密码。 我看到很多节点模块(bcrypt,phpass,node-bcrypt),但都是假的。 下面是在PHP中生成的示例哈希,我试图在nodejs中validation。 var hash = '$2y$08$9TTThrthZhTOcoHELRjuN.3mJd2iKYIeNlV/CYJUWWRnDfRRw6fD2'; var bcrypt = require('bcrypt'); bcrypt.compare("secret", hash, function(err, res) { console.log(res); }); (这里的秘密是真实的密码) 我目前的解决方法是通过节点调用一个PHP脚本来validation(对于任何需要解决方法的人) var exec = require('child_process').exec; var cmd = 'php verify.php password encryped_pasword'; exec(cmd, function (error, stdout, stderr) { // output is in stdout console.log(stdout); //If stdout has […]