簡體   English   中英

Python是否可以識別Java中使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM