2013-02-23 93 views
0

是mysql5算法是SHA-1(SHA-1($ pass))?Mysql5哈希生成器VBA

然後,我想這http://vb.wikia.com/wiki/SHA-1.bas腳本,使用功能=SHA1HASH(SHA1HASH("test"))我得到c4033bff94b567a190e33faa551f411caef444f2但Mysql5的哈希必須94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29

如何字符串轉換爲Mysql5的散列VBA?

enter image description here

我發現爲什麼這hapens,

因爲SHA1十六進制提供,但Mysql5的二進制

+0

你確定$ pass =「test」嗎? 選擇SHA1(SHA1(「測試」))= c4033bff94b567a190e33faa551f411caef444f2 – 2013-02-23 10:06:04

+0

是的,我肯定http://i.stack.imgur.com/rnpfI.png – 2013-02-23 10:18:10

+0

你是怎麼使用計算以下散列:94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 – 2013-02-23 10:19:21

回答

1

它看起來像串94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29經MySQL的功能PASSWORD()產生。

SELECT PASSWORD("test") /* *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 */ 

所推薦的MySQL文檔,如果你需要保持你哈希在Excel中,你需要改變你原有的散列過程使用類似SHA1代碼。

來自MySQL文檔:http://dev.mysql.com/doc/refman/5.0/en/encryption-functions.html#function_password PASSWORD()函數被MySQL服務器中的認證系統使用;你不應該在你自己的應用程序中使用它。爲此,請考慮MD5()或SHA1()。

+0

我不想改變任何東西,我想從EXCEL VBA中的字符串測試中得到* 94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 – 2013-02-23 10:41:39

+1

爲什麼你想要得到那個特定的散列 - 它是MySQL 5用來爲MySQL生成內部散列的私有散列方法。 有自己的文檔建議您不要使用它。 除非你已經失去了一條不可逆轉的路線,否則我強烈建議你切換到非專有選項。 如果您需要使用MySQL PASSWORD()函數,您將需要安裝從VBA模塊連接到本地或遠程MySQL服務器,運行以下SQL'SELECT PASSWORD(「test」)'並獲得結果。 – 2013-02-23 10:54:15

+0

我已經在密碼中生成了Mysql5密碼中的密碼,我只是想比較密碼是否已經更改 – 2013-02-23 11:01:14