面试题答案
一键面试常用加密库
- BCrypt:常用于密码哈希,它是自适应的,随着计算能力提升,可调整难度。
- SCrypt:也是密码哈希函数,设计用于需要大量内存计算的场景,增加暴力破解难度。
- OpenSSL:提供各种加密算法和安全相关功能,功能强大且全面。
使用BCrypt库示例
- 安装BCrypt库:
在Gemfile中添加
gem 'bcrypt'
,然后执行bundle install
;或直接执行gem install bcrypt
。 - 加密操作:
require 'bcrypt'
password = "user_password"
hashed_password = BCrypt::Password.create(password)
puts hashed_password
- 解密(验证)操作:
require 'bcrypt'
hashed_password = BCrypt::Password.new("$2a$12$YOUR_HASHED_PASSWORD")
input_password = "user_input_password"
if hashed_password == input_password
puts "密码匹配"
else
puts "密码不匹配"
end
上述代码中,BCrypt::Password.create
方法用于对密码进行加密,生成哈希值。验证密码时,使用BCrypt::Password.new
方法将存储的哈希值转换为可比较的对象,然后与用户输入的密码进行比较。