Password-Hashing

scrypt 和 argon2:二進制安全?

  • September 14, 2017

對於 bcrypt,可能眾所周知它不是二進制安全的,因為它使用空終止,這意味著當使用 bcrypt 時,您需要確保沒有人這樣做(例如,通過在不同的二進制安全函式(如 SHA256 之前)中對密碼進行雜湊處理,並且編碼輸出)

到目前為止,我們基本上有 2 種其他方法可用於密碼散列、scrypt 和 argon2,在快速使用 google 之後,我真的找不到任何關於這兩種方法是否是二進制安全的資訊(這意味著我可以直接使用它們關於密碼,這肯定會使它們更易於使用)或不。

有人知道嗎?

BCrypt、Argon2 和 scrypt 都是“二進制安全的”。

也就是說,算法(及其參考 C 實現)中沒有任何固有的東西需要“密碼”輸入具有任何結構。

唯一的例外可能是 bcrypt 有 72 字節的輸入限制,但這可以使用預散列來解決。

*但是,特定的 API 可能會以不同的方式包裝事物,並通過切斷\0字節或類似事物來“幫助”程序員。*如果這是您需要的資訊,您需要查閱相關包裝器的文件/原始碼。

引用自:https://crypto.stackexchange.com/questions/51524