尝试使用Crystal的Bycrypt库 - “无效盐大小”

问题描述:

我正在尝试使用Crystal附带的Bcrypt库对散列+ salt用户密码进行散列。尝试使用Crystal的Bycrypt库 - “无效盐大小”

以下代码在游乐场中运行时会产生“无效盐大小”错误。

require "crypto/bcrypt" 

user = "Jones" 
pass = "password" 

temp = Crypto::Bcrypt.new(pass, user) 

Relevant source code

使用Crypto::Bcrypt::Password API,不直接使用Crypto::Bcrypt

您不使用BCrypt哈希生成中的用户名,API将使用随机值作为盐。

bcryptHash = Crypto::Bcrypt::Password.create("password123") 

https://crystal-lang.org/api/master/Crypto/Bcrypt/Password.html

+0

所以基本上“加密:: Bcrypt :: Password.create(用户+通)'? – Jones

+0

这给了我一个索引越界的错误。 – Jones

+0

你只应该散列秘密值,连接用户名没有真正意义,使用用户名作为盐一般来说不是一个好习惯,但对于bcrypt它绝对没有意义,整个bcrypt的要点是它安全地提取盐管理离开你。 – Magnus