![](/img/trans.png)
[英]Comparing hashed password from SQLite database to user input using BCrypt
[英]Can a hashed password using BCrypt in Java be recognised by Python?
我打算使用bcrypt哈希用戶密碼,並將這些哈希密碼存儲在數據庫中。
處理用戶帳戶創建並將哈希密碼插入數據庫的服務器是用Java編寫的。
需要訪問用戶信息(包括哈希密碼)的另一台服務器是用Python編寫的。
我打算將jBCrypt用於Java端,但是在此之前,我想確保能夠從Python端識別/使用這些哈希密碼。
以我的理解,只要Python BCrypt實現與Java實現相同,這應該沒問題。
因此,我可以使用通過Python的jBCrypt散列的密碼嗎? 怎么樣?
提前致謝!
最好的知道方法是實際嘗試。 假設兩種實現都是正確的,則它們應該兼容,只要您注意根據需要重新編碼數據即可。
通常,哈希以原始哈希的字節數組或ASCII十六進制表示形式存儲在內存中。 知道它正在使用哪種編碼的最好方法是將其實際打印到控制台:如果看起來像垃圾,它將是一個原始字節數組; 如果輸出十六進制字符串(0-9和af),則為ASCII編碼的十六進制。
鹽可能會像哈希一樣存儲。 輪數是整數。 由您決定是否以通用格式存儲所有這些數據。 如果需要在Python中將ascii十六進制字符串轉換為字節數組(實際上是字符串),則可以使用string.encode:
>>> 'hello world'.encode('hex')
'68656c6c6f20776f726c64'
>>> '68656c6c6f20776f726c64'.decode('hex')
'hello world'
對於python中的bcrypt實現,您可能需要嘗試py-bcrypt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.