2013-02-23 87 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