0
我正在嘗試使用Crystal附帶的Bcrypt庫對散列+ salt用戶密碼進行散列。嘗試使用Crystal的Bycrypt庫 - 「無效鹽大小」
以下代碼在遊樂場中運行時會產生「無效鹽大小」錯誤。
require "crypto/bcrypt"
user = "Jones"
pass = "password"
temp = Crypto::Bcrypt.new(pass, user)
我正在嘗試使用Crystal附帶的Bcrypt庫對散列+ salt用戶密碼進行散列。嘗試使用Crystal的Bycrypt庫 - 「無效鹽大小」
以下代碼在遊樂場中運行時會產生「無效鹽大小」錯誤。
require "crypto/bcrypt"
user = "Jones"
pass = "password"
temp = Crypto::Bcrypt.new(pass, user)
使用Crypto::Bcrypt::Password
API,不直接使用Crypto::Bcrypt
。
您不使用BCrypt哈希生成中的用戶名,API將使用隨機值作爲鹽。
bcryptHash = Crypto::Bcrypt::Password.create("password123")
見https://crystal-lang.org/api/master/Crypto/Bcrypt/Password.html
所以基本上「加密:: Bcrypt :: Password.create(用戶+通)'? – Jones
這給了我一個索引越界的錯誤。 – Jones
你只應該散列祕密值,連接用戶名沒有真正意義,使用用戶名作爲鹽一般來說不是一個好習慣,但對於bcrypt它絕對沒有意義,整個bcrypt的要點是它安全地提取鹽管理離開你。 – Magnus