Tôi đã khám phá Twin-Bcrypt thư viện JavaScript và đã tìm thấy một điều kỳ lạ. Tại một thời điểm, tôi đã tạo muối của riêng tôi ở phía máy chủ với PHP base64_encode(openssl_random_pseudo_bytes(16))
và sử dụng nó trong hàm TwinBcrypt.hash()
, phản hồi muối đó không hợp lệ do mẫu không khớp thường xuyên trong thư viện. Vì vậy, mô hình là:JS Mẫu mã Twin-Bcrypt
var SALT_PATTERN = /^\$2[ay]\$(0[4-9]|[12][0-9]|3[01])\$[.\/A-Za-z0-9]{21}[.Oeu]/;
và có vẻ tốt cho muối của tôi, ngoại trừ một điều - cái quái gì thế này - [.Oeu]
?
câu hỏi đầu tiên của tôi là, tại sao họ mong đợi từ muối kết thúc với một dấu chấm , hoặc O, hoặc e, hoặc u? Theo như tôi biết openssl_random_pseudo_bytes()
tạo an toàn CSPRNG, nhưng vì thư viện JS mẫu không muốn chấp nhận nó.
Câu hỏi thứ hai - có lý do bảo mật nào cho muối kết thúc bằng mẫu /[.Oeu]/
không?
Tôi sẽ rất biết ơn vì bất kỳ trợ giúp nào, bởi vì không có nhiều thông tin về nó.
Điều này sẽ được thêm vào Wiki. Cảm ơn bạn rất nhiều! – Nevertheless