Có một ứng dụng được viết bằng PHP mà tôi đang chuyển đổi sang Ruby. Khi mã hóa mật khẩu, ứng dụng PHP sử dụng mã sau:Xác thực mật khẩu được mã hóa bằng PHP bằng Blowfish với Ruby
if($method == 2 && CRYPT_BLOWFISH) return crypt($pass, '$2a$07$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxx$');
Tôi giả định đây là việc sử dụng triển khai Blowfish. Các x ở đây là tất cả các ký tự a-zA-Z0-9.
Việc thực hiện Blowfish trong Ruby sử dụng cú pháp sau (lấy từ http://crypt.rubyforge.org/blowfish.html):
blowfish = Crypt::Blowfish.new("A key up to 56 bytes long")
plainBlock = "ABCD1234"
encryptedBlock = blowfish.encrypt_block(plainBlock)
Tôi không có một chuỗi dài 56 hoặc ít byte và nó không phải là rõ ràng những gì mà nên từ phiên bản PHP . Vậy làm thế nào tôi có thể viết một hàm Ruby sẽ mã hóa mật khẩu để đưa ra kết quả tương tự như PHP?
Điều này hoạt động hoàn hảo. Cảm ơn! –