我正在尝试在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()函数,不需要任何键
我已经直接从mysql-workbench输入用户名/密码
插入到USUARIOS列(别名,PWD)值(“ luis”, AES_ENCRYPT('miguel','yucg39dy(9&%$ ^?bcGSFD'))
rs.open“ SELECT AES_DECRYPT(PWD,'yucg39dy(9&%$ ^?bcGSFD'from USUARIOS WHERE ..']
很久以前,但也许尝试一下:
SELECT AES_DECRYPT(PWD, 'yucg39dy(9&%$^?bcGSFD') AS PWD FROM USUARIOS WHERE ..' ('User' = 'miguel';)
一切顺利
您不需要找回密码。
您应该做的
SELECT COUNT(*) FROM USUARIOS WHERE USER = ? AND PWD = AES_ENCRYPT(...)
并查看计数是1还是0。
然后您会发现您根本不需要解密密码,因此您可以停止该不安全的计划并对其进行哈希处理。