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

问题描述 投票:0回答:2

我正在尝试在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 encryption aes
2个回答
1
投票

我已经直接从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';)

一切顺利


0
投票

您不需要找回密码。

您应该做的

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

并查看计数是1还是0。

然后您会发现您根本不需要解密密码,因此您可以停止该不安全的计划并对其进行哈希处理。

© www.soinside.com 2019 - 2024. All rights reserved.