mysql表中的加密密码,VBA作为前端

时间:2015-12-16 21:56:01

标签: mysql encryption aes

我正在尝试在MS ACCESS 2013应用程序中添加一些安全性(在后端使用Mysql BE)。

第一个申请表会询问用户和密码,将其与mysql自定义表(例如“USUARIOS”)进行比较,如果匹配或不在其他地方,则授予访问权限

但我希望使用AES_ENCRYPT或其他方便的算法将密码存储为“加密”

我直接从mysql-workbench

输入了用户名/密码
INSERT INTO USUARIOS COLUMN (ALIAS, PWD) 
VALUES ('luis', AES_ENCRYPT('miguel','yucg39dy(9&%$^?bcGSFD'))

但是我无法检索要比较的密码(从代码,使用VBA,加载ADO记录集)。

rs.open "SELECT AES_DECRYPT(PWD, 'yucg39dy(9&%$^?bcGSFD' FROM USUARIOS WHERE ..'

此rs未按预期返回“miguel”一词

我很感激任何提示。也许我可以使用password()或MD5()函数,不需要任何键

2 个答案:

答案 0 :(得分:1)

我已经直接从mysql-workbench输入用户名/密码

插入USUARIOS列(别名,PWD)值(“ luis”, AES_ENCRYPT('miguel','yucg39dy(9&%$ ^?bcGSFD'))

rs.open“从USUARIOS WHERE WHERE ..中选择SELECT AES_DECRYPT(PWD,'yucg39dy(9&%$ ^?bcGSFD'..'

很久以前,但也许尝试一下:

SELECT AES_DECRYPT(PWD, 'yucg39dy(9&%$^?bcGSFD') AS PWD FROM USUARIOS WHERE ..' ('User' = 'miguel';)

祝一切顺利

答案 1 :(得分:0)

您无需检索密码。

你应该这样做

SELECT COUNT(*) FROM USUARIOS WHERE USER = ? AND PWD = AES_ENCRYPT(...)

并查看计数是1还是0.

然后,您将很清楚您根本不需要解密密码,因此您可以停止该不安全的计划并将其哈希处理。