标签: bcrypt

Laravel 使用 Bcrypt 密码创建第一条记录

我可以通过迁移在数据库中创建第一条记录吗,其中password列中的第一条记录已经被加密

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email');
        $table->string('level');
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });

    User::firstOrCreate([
        'name' => 'admin',
        'email' => 'admin@app.com',
        'level' => 'Administrator',
        'password' => 'password'
    ]);
}
Run Code Online (Sandbox Code Playgroud)

代码可以工作,但未password加密,有什么建议吗?

database migration bcrypt laravel

2
推荐指数
1
解决办法
272
查看次数

在iOS中没有bcrypt实现...可以使用其他语言,创建静态库吗?

在Objective-C中没有直接的bCrypt(http://codahale.com/how-to-safely-store-a-password/)实现,虽然有C代码可以实现这一点,但它专门用于x86处理器,依靠BSD库.

我正在构建一个iOS应用程序,它与相应的在线(.NET和HTML5 + Javascript)应用程序共享相同的密码哈希值.

我不是应该在哪里,我可以阅读非常简单的Java代码(http://www.mindrot.org/projects/jBCrypt/)并将其转换为适合iOS开发的Objective-C代码.

但是,有一个Ruby实现(https://github.com/codahale/bcrypt-ruby),我听说你可以使用Ruby来构建iOS应用程序.我可以将Ruby代码转换为静态库,并将其链接到我的iOS项目吗?或者,甚至使用Mono并利用.NET实现(也是一个干净的,纯代码,无依赖项目)来构建静态库?

或者,最后,有没有人知道bCrypt代码的Objective-C实现?这看起来很简单,我只是不太了解.NET/C#/ Ruby自己翻译它.

c# java hash objective-c bcrypt

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

解密为bcrypt

标题非常自我解释.我不确定这是否存在,因为它会大大损害bcrypt的安全性,但我在rails应用程序中使用Devise并忘记了我的密码.但是,我可以访问服务器并找到信息.我可以看到加密的密码,需要解密.

我不想要问题的替代解决方案,我只想要一个解密器,所以我可以获得密码.

encryption passwords ruby-on-rails bcrypt

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

PHP Bcrypt检索密码

因此,当有人在网站上注册后,我使用bcrypt加密他们的密码,这些密码存储在数据库的密码列中.现在,如果他们忘记了密码,我想给他们发电子邮件密码,以便他们登录并更改密码.如何撤消bcrypt加密以获取原始密码?

php bcrypt

1
推荐指数
2
解决办法
5761
查看次数

从password_hash()确定salt

我用bcrypt哈希我的密码(因为我运行php 5.3.10 实际上是用password_compat)
我想把函数的结果字符串分成两部分:使用的盐和哈希本身.(我知道使用password_verify()来验证密码.但是我需要使用哈希作为密钥来加密更广泛的安全系统中的私钥.)

对于给定的密码(abcdef),这是结果:

 $2y$10$ult68Ti4/zEWX4VQ       ....           YCOWjL6
Run Code Online (Sandbox Code Playgroud)

我已经改变了一点功能,吐出了concat,salt,hash和hash_format.

 ... from the password_compat ...
 $salt = substr($salt, 0, $required_salt_len);
 $hash = $hash_format . $salt;
 $ret = crypt($password, $hash);
 if (!is_string($ret) || strlen($ret) <= 13) {
        return false;
 }

 return array( 'concat'=>$ret, 
               'salt'=>$salt, 
               'format'=>$hash_format,
               'hash_format'=>$hash);
Run Code Online (Sandbox Code Playgroud)

我想结果哈希是的一个CONCAT $hash_format,$salt以及hash......但最后一个字符是不同的...

                                               _
[concat] =>        $2y$10$oWfFYcNqlcUeGwJM0AFUguSJ5t  .....  SvWG
[salt] =>                 oWfFYcNqlcUeGwJM0AFUgw
[hash_format] =>   $2y$10$oWfFYcNqlcUeGwJM0AFUgw
[format] =>        $2y$10$
                                               ^
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在crypt函数之前和函数之后,salt中的最后一个字符是不同的.

这怎么可能?

php hash crypt bcrypt

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

javascript SQLITE_BUSY:数据库被锁定,sql:插入"users"

我正在进行"注册"页面并且遇到sqlite问题.

我正在使用express,bcrypt-nodejs,bookself.js用于sqlite.收到错误说数据库已锁定.对此有何解决方法?赞赏.下面是该部分的代码.

app.post('/signup', function(req, res){
  var username = req.body.username;
  var password = req.body.password;
  bcrypt.hash(password, null, null, function(err, hash){
    new User({'username': username, 'password': hash})
      .save()
      .then(function(){
        console.log('Successfully added a user');
      })
      .catch(function(err){
        throw err;
      });
  });
  res.render('login');
});
Run Code Online (Sandbox Code Playgroud)

javascript sqlite bcrypt

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

BCrypt身份验证总是失败RAILS

我正在关注Michael Hartl的Ruby on Rails教程,在那里我达到了第8章.但是经过验证的?方法总是返回false.Cookie for:remember_token已正确保存.但是当我比较数据库消化时,remember_digest通过BCrypt::Password.new(remember_digest).is_password?(remember_token)它将总是返回false.我正在使用Rails 4.2.5.1.这是我的代码:

controllers/sessions_controller.rb

class SessionsController < ApplicationController
    def new
    end

    def create
        user = User.find_by(email: params[:session][:email].downcase)
        if user && user.authenticate(params[:session][:password])
            log_in(user)
            params[:session][:remember_me] == '1' ? remember(user) : forget(user)
            redirect_to user
        else
            flash.now[:danger] = 'Invalid email/password combination'
            render 'new'
        end
    end

    def destroy
        log_out if logged_in?
        redirect_to root_url
    end
end

models/user.rb

class User < ActiveRecord::Base
  attr_accessor :remember_token

    before_save { email.downcase! }
    validates :name, presence: true, length: { maximum: 50 }
    validates :email, presence: …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails bcrypt

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

在VertX中使用Bcrypt改善性能

我正在vertx中创建一个注册方法,该方法使用Bcrypt在数据库中编码密码。我的问题来自使用BCrypt编码密码的性能下降。

当即时通讯使用:
-需要大约〜Bcrypt我的查询1200ms
- Whitout Bcrypt 〜220ms内

那我该怎么做才能提高性能呢?有另一种在VertX中编码密码的方法吗?

我在vertx中使用Bcrypt(http://www.mindrot.org/projects/jBCrypt/)。

java bcrypt vert.x

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

bcrypt.hash不会调用它的回调

由于某种原因,该bcrypt.hash方法挂起并且从不调用其回调.

bcrypt.genSalt(29, function(err, salt) {
    if (err) {
        res.json({ success: false, msg: err.message });
    } else {
        bcrypt.hash(req.body.password, salt, function (err, hash) {
            // This function is never called
            res.json({ success: true });
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

有什么建议?

UPDATE

它似乎与express.js等无关.我刚刚创建了一个脚本文件test.js:

var bcrypt = require('bcrypt');

var pwd = 'Test password 123';

bcrypt.genSalt(29, function(err, salt) {
    if (err) {
        console.log('1: ' + err.message);
    } else {
        console.log('Salt: ' + salt);
        bcrypt.hash(pwd, salt, function (err, hash) {
            if (err) { …
Run Code Online (Sandbox Code Playgroud)

bcrypt node.js

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

升级现有的bcrypt哈希回合计数

我有一个数据库,其中大多数哈希对于我们的用例而言,舍入计数太低。我希望将它们升级到更高的回合/迭代次数,希望使用node.bcrypt.js库。

例:

我的数据库中有类似的内容

'$2a$05$Ss068.p/.i4IRzrYoLM/U.ETLpzwrBs2vVfViqgfC5bI4i3BGClZC' 
   //From: bcrypt.hashSync("hello world", 5)
Run Code Online (Sandbox Code Playgroud)

我希望它变成这样的东西:

'$2a$10$6sZOFUEWdVMHoCsgF0k1..RhwoD7VmLlLc5.67/Qw81/XuSuNIOcO'
  //From: bcrypt.hashSync("hello world", 10)
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我认为api可能看起来像这样:

//Non-existing api;
var hash = '$2a$05$Ss068.p/.i4IRzrYoLM/U.ETLpzwrBs2vVfViqgfC5bI4i3BGClZC';
const roundCount = 10
bcrypt.upgradeHashRoundCount(hash, roundCount)
  .then(function(upgradedHash){
    console.log(upgradedHash)
  })
  .catch(function(error){
    console.error("Not a bcrypt hash, or has higher round-count than provided round count")
  })
Run Code Online (Sandbox Code Playgroud)

编辑以澄清:

我想做一个批处理作业,在其中获取所有哈希,并对每个哈希进行升级,而没有原始密码可用。由于bcrypt本质上只是在循环,所以我认为从理论上讲应该可以再进行一些回合并将其存储回去。

bcrypt node.js

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