标签: bcrypt

在Android应用程序中使用jBCrypt加密密码会导致长时间挂起

我在使用我的应用程序注册时使用jBCrypt库来哈希用户密码.

我正在使用基本哈希函数,使用salt,如下所示:

String pass = BCrypt.hashpw(rawPass, BCrypt.gensalt());
Run Code Online (Sandbox Code Playgroud)

我注意到在注册时一到两分钟,并检查了调试器,确认BCrypt负责.

盐化密码真的需要那么多的处理能力吗?如果是这样,一个好的选择是将明文密码发送到服务器来散列它吗?我最初的想法就是在它发送到任何地方之前将其哈希.有任何想法吗?

java passwords android bcrypt jbcrypt

8
推荐指数
1
解决办法
1万
查看次数

什么是推荐的Bcrypt C实现?

C中至少有两个Bcrypt实现:

我应该使用哪一个作为新项目的基础?请注意,我不需要向后兼容性,因此我的选择将完全取决于哪个实现被认为是最新的和维护的.另外,我很好奇哪一个用作大多数非C语言绑定的基础.

c security bcrypt

8
推荐指数
1
解决办法
6261
查看次数

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 area

            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我删除了示例中的所有错误处理,以便更容易阅读代码.

1.这工作,我能够登录和设置会话.但这就是它的全部吗?我错过了什么吗?

2.生成哈希时看起来就像密码前面有盐一样.我不得不在db中保存盐吗?

任何帮助赞赏

javascript mysql password-protection bcrypt node.js

8
推荐指数
1
解决办法
5271
查看次数

在node.js中使用Async或Sync bcrypt函数以生成哈希值?

我目前正在尝试在node.js中为我的项目创建身份验证模块?

我已经看到了一些使用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是好的,因为它很耗时,为了不阻塞代码,使用异步函数不是更明智的,即:

User.virtual('password')
.get( function () {
    return this.hash;
})
.set( function (password) {
    bcrypt.hash('password', 10, function(err, hash) {
        this.hash = hash;
    });
});
Run Code Online (Sandbox Code Playgroud)

能否请您解释一下哪种方式更好,为什么?谢谢!

asynchronous bcrypt node.js

8
推荐指数
1
解决办法
5958
查看次数

节点bcrypt的比较总是返回false

我很困难,试图让我的密码成功地与使用节点的bcrypt进行比较.也许我错过了一些东西,但在创建帐户时,我在注册方法中执行以下操作(某些代码缩写):

bcrypt.genSalt(10, function(err, salt) {
               if(err) {

               }
               bcrypt.hash(user.Password, salt, function(err, hash) {
                           console.log('hashing and saving');
                           db.query(db insert code, function (error, rows, fields) {
                                    if(error) {
                                    console.log(error);
                                    res.setHeader('500', { 'Content-Type': 'x-application/json'});
                                    res.send({UserId: 0, ErrorMessage: 'Something terrible happened.'});
                                    } else {
                                    console.log('User created : ' + rows.insertId);
                                    res.setHeader('200', { 'Content-Type': 'x-application/json'});
                                    res.send({UserId: rows.insertId});
                                    }
                                    });
                           });
               });

return next();
Run Code Online (Sandbox Code Playgroud)

一切正常.我的数据库有加密密码.但是当用户登录时,我无法从bcrypt.compare获得成功结果:

db.query(get account code, function(error, rows, fields) {
         if(rows.length == 1) {
           bcrypt.compare(request.params.password, rows[0].Password, function(err,res) {
              if(err) { console.log(err.toString()); }
              if(res == …
Run Code Online (Sandbox Code Playgroud)

javascript bcrypt node.js

8
推荐指数
5
解决办法
2万
查看次数

Bcrypt vs Hash in laravel

我想创建一个函数或类似Cron的东西,它执行链接(在Laravel中),类似于密码.我有两个解决方案.但哪一个更好用:

选项1(哈希):

<?php

// Page 1

$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);

// <-- Insert go to page and send GET with $key code here

// Page 2

$salt = "my-random-hash";
$key = hash('sha256', date('Y-m-d').$salt);

if ($key == $pageOneKey) {
    // Execute some code
}
Run Code Online (Sandbox Code Playgroud)

选项2(bcrypt):

<?php

// Page 1

$key = Crypt::encrypt(date('Y-m-d'));

// <-- Insert go to page and send GET with $key code here

// Page 2

$key = date('Y-m-d');
$pageOneKey = Crypt::decrypt($key);

if ($key == $pageOneKey) …
Run Code Online (Sandbox Code Playgroud)

php hash bcrypt laravel

8
推荐指数
1
解决办法
3万
查看次数

crypto/bcrypt:hashedPassword不是给定密码的哈希值

我加密用户的密码并保存到db.然后到用户登录,比较哈希密码和普通密码,我收到crypto/bcrypt: hashedPassword is not the hash of the given password错误.怎么了 ?

func encryptPassword(password string) (string, error) {
    bytePass := []byte(password)
    hashedPassword, err := bcrypt.GenerateFromPassword(bytePass, bcrypt.DefaultCost)
    if err != nil {
        log.Printf("ERROR:EncryptPassword: %s", err.Error())
    }
    return string(hashedPassword), err
}

func (i *Impl) Register(user User) bool {
    hashedPass, err := encryptPassword(user.Password)
    if err != nil {
        return false
    }

    user.Password = hashedPass

    if err := i.DB.Create(&user).Error; err != nil {
        log.Printf("ERROR:Register: %s", err.Error())
        return false
    }
    return true
}

func …
Run Code Online (Sandbox Code Playgroud)

hash go bcrypt

8
推荐指数
2
解决办法
1571
查看次数

sails.js + npm模块'bcrypt'未在Windows 10中安装

我克隆了一个使用'bcrypt'模块的sails项目,当我尝试使用命令安装它时 -

npm install --save bcrypt  
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误!!!.我也使用npm版本@ 3.6.0和节点版本@ 5.6.0.Am无法解决此错误如下所示:

 > bcrypt@0.8.5 install C:\Users\vikas\Documents\batua-web\node_modules\bcrypt  
 > node-gyp rebuild  
 > C:\Users\vikas\Documents\batua-web\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.  
 > C:\Users\vikas\Documents\batua-web\node_modules\bcrypt\build\bcrypt_lib.vcxproj(20,3): error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.  
> gyp …
Run Code Online (Sandbox Code Playgroud)

bcrypt node.js npm sails.js npm-install

8
推荐指数
2
解决办法
1829
查看次数

Node.js中的$ 2y bcrypt哈希值

我正在处理带有$2y哈希的旧数据库.我已经挖了一下这个,也偶然发现堆栈溢出$2a和之间的区别$2y.

我查看了bcrypt似乎生成并仅比较$2a哈希的节点模块.

我找到了一个生成$2y哈希的网站,所以我可以测试它们bcrypt.

这是一个$2y字符串哈希的例子helloworld.

helloworld:$2y$10$tRM7x9gGKhcAmpeqKEdhj.qRWCr4qoV1FU9se0Crx2hkMVNL2ktEW
Run Code Online (Sandbox Code Playgroud)

似乎模块无法验证$2y哈希值.

这是我的考试.

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 hashesGeneratedUsingAspirineDotOrg = [
  '$2y$10$MKgpAXLJkwx5tpijWX99Qek2gf/irwvp5iSfxuFoDswIjMIbj2.Ma',
  '$2y$10$tRM7x9gGKhcAmpeqKEdhj.qRWCr4qoV1FU9se0Crx2hkMVNL2ktEW'
]

var …
Run Code Online (Sandbox Code Playgroud)

javascript cryptography bcrypt node.js

8
推荐指数
1
解决办法
2731
查看次数

在MySQL上存储BCrypt Hashes的正确方法

在MySQL中搜索存储BCrypt哈希的正确方法我发现了这个问题,这只会让我更加困惑.

接受的答案指出我们应该使用:

CHAR(60) BINARY or BINARY(60)

但是评论中的其他人认为我们应该使用:

CHAR(60) CHARACTER SET latin1 COLLATE latin1_bin

甚至:

COLLATE latin1_general_cs

我不是数据库的专家,所以任何人都可以解释我所有这些选项之间的区别,哪一个真的更适合存储BCrypt哈希?

mysql hash bcrypt

8
推荐指数
1
解决办法
1675
查看次数