我正在尝试在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()函数,不需要任何键
答案 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.
然后,您将很清楚您根本不需要解密密码,因此您可以停止该不安全的计划并将其哈希处理。