好吧,我绝对正确地选择了我的昵称,因为我对此感到困惑:
首先我对其进行加密,然后在我的表中得到一个加密行。但是当我尝试解密它时,我得到零行作为结果集。
加密:
INSERT INTO accesobases (company, username,email) VALUES
('hola',
AES_ENCRYPT('pedro','capullo'),
AES_ENCRYPT('myemail',' capullo')
);
当我运行解密查询时,显示 0 行。
SELECT company,
AES_DECRYPT('username', 'capullo'),
AES_DECRYPT('email', 'capullo')
from acceso
where company = 'hola';
请注意,我没有加密公司,但我肯定需要加密,但我想看看错误可能在哪里。也就是说,即使没有离开未加密的词(公司 = hola),我也会得到任何结果。因此,当我尝试这样做时,情况会更糟:
where AES_DECRYPT ('company', 'capullo') = ' " . $company . " '
这就是它在我的 php 页面上的样子。上面的块正在 MySQL 数据库本身上运行。
所以,问题有两个:
- 不显示任何数据有什么问题
- ..."$company.." 的版本是否有效。
但是,如果我说:
SELECT * from acceso
WHERE company = 'hola';
然后,它确实显示了带有加密字的行
所以,就好像它没有时间在显示之前解密该行然后什么都不显示