BCrypt::Errors::InvalidSalt: 无效盐设计 [英] BCrypt::Errors::InvalidSalt: invalid salt Devise

查看:8
本文介绍了BCrypt::Errors::InvalidSalt: 无效盐设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试像这样创建新用户时遇到此错误

<代码>>>User.create(:email=>"nandosousafr@gmail.com", :password => "hello")BCrypt::Errors::InvalidSalt: 无效盐来自/Library/Ruby/Gems/1.8/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:56:in `hash_secret'来自/Library/Ruby/Gems/1.8/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:161:in `create'来自/Library/Ruby/Gems/1.8/gems/devise-2.1.2/lib/devise/models/database_authenticatable.rb:110:in `password_digest'来自/Library/Ruby/Gems/1.8/gems/devise-2.1.2/lib/devise/models/database_authenticatable.rb:37:in `password='来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:85:in `send'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:85:in `assign_attributes'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:78:in `each'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:78:in `assign_attributes'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/base.rb:495:in `initialize'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/persistence.rb:44:in `new'来自/Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/persistence.rb:44:in `create'来自 (irb):3

<块引用>

>

宝石文件

需要'rbconfig'HOST_OS = RbConfig::CONFIG['host_os']来源'https://rubygems.org'宝石导轨",3.2.2"# 改为捆绑边缘 Rails:# gem 'rails', :git =>'git://github.com/rails/rails.git'宝石'mysql2'# Gems 仅用于资产,不是必需的# 默认在生产环境中.组:资产做gem 'sass-rails', '~>3.2.3'gem '咖啡轨','~>3.2.1'宝石指南针"# 有关更多支持的运行时,请参阅 https://github.com/sstephenson/execjs#readme# gem 'therubyracer'宝石少"gem 'uglifier', '>= 1.0.3'结尾宝石'jquery-rails'gem 'twitter-bootstrap-rails'宝石friendly_id",〜> 4.0.1"宝石休息客户端"宝石haml",> = 3.1.6"gem "haml-rails", ">= 0.3.4", :group =>:发展宝石设计",> = 2.1.0"宝石cancan",> = 1.6.7"宝石旋转",> = 3.1.0"gem "therubyracer", :group =>:assets, :platform =>:红宝石宝石simple_form"宝石will_paginate",> = 3.0.3"宝石回形针",~> 2.7"宝石rdiscount"宝石 'oily_png'

用户.rb

class User 

我用谷歌搜索,我发现一篇文章让我把 config.encryptor = :sha1,而不是 config.encryptor = :bcrypt,但问题没有解决..

有人吗?

解决方案

如果您尝试重新安装 bcrypt-ruby gem 会怎样?

 # 删除所有版本的 bcrypt-rubysudo gem 卸载 bcrypt-ruby# 安装最新版本须藤宝石安装 bcrypt-ruby

I'm getting this error when i try to create new User, like this

>> User.create(:email=>"nandosousafr@gmail.com", :password => "hello")
BCrypt::Errors::InvalidSalt: invalid salt
from /Library/Ruby/Gems/1.8/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:56:in `hash_secret'
from /Library/Ruby/Gems/1.8/gems/bcrypt-ruby-3.0.1/lib/bcrypt.rb:161:in `create'
from /Library/Ruby/Gems/1.8/gems/devise-2.1.2/lib/devise/models/database_authenticatable.rb:110:in `password_digest'
from /Library/Ruby/Gems/1.8/gems/devise-2.1.2/lib/devise/models/database_authenticatable.rb:37:in `password='
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:85:in `send'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:85:in `assign_attributes'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:78:in `each'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/attribute_assignment.rb:78:in `assign_attributes'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/base.rb:495:in `initialize'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/persistence.rb:44:in `new'
from /Library/Ruby/Gems/1.8/gems/activerecord-3.2.2/lib/active_record/persistence.rb:44:in `create'
from (irb):3

>

Gemfile

require 'rbconfig'
HOST_OS = RbConfig::CONFIG['host_os']

source 'https://rubygems.org'

gem 'rails', '3.2.2'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'mysql2'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem "compass-rails"  
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer'
  gem 'less'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'twitter-bootstrap-rails'

gem "friendly_id", "~> 4.0.1"

gem "rest-client"

gem "haml", ">= 3.1.6"
gem "haml-rails", ">= 0.3.4", :group => :development

gem "devise", ">= 2.1.0"
gem "cancan", ">= 1.6.7"
gem "rolify", ">= 3.1.0"
gem "therubyracer", :group => :assets, :platform => :ruby
gem "simple_form"
gem "will_paginate", ">= 3.0.3"
gem "paperclip", "~> 2.7"
gem "rdiscount"
gem 'oily_png'

User.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

i've googled and i found a article that lead me to put config.encryptor = :sha1, instead of config.encryptor = :bcrypt, but the problem wasn't solved..

anyone?

解决方案

What if you tried reinstalling the bcrypt-ruby gem?

  # Remove all versions of bcrypt-ruby
  sudo gem uninstall bcrypt-ruby

  # Install the latest version 
  sudo gem install bcrypt-ruby

这篇关于BCrypt::Errors::InvalidSalt: 无效盐设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆