【发布时间】:2018-05-21 07:17:09
【问题描述】:
首先,我使用aes_encrypt 来加密密码
然后我使用aes_decrypt 来解密密码
问题是当我尝试使用回显表中的数据时
<?php echo $row['pass'];?>,会有错误
“未定义索引:传入”
SQL 插入
插入用户名 (userName,pass) 值('$userName', aes_encrypt('$pass','k'))
SQL 选择
SELECT UserNameID,userName,aes_decrypt(pass,'k') from username
出了什么问题?
【问题讨论】:
-
你能给我们看一下sql查询吗?我怀疑其中没有“通过”别名。 (例如 aes_decrypt(pass, 'k') AS pass.
-
不要加密密码,当攻击者得到数据库时,他也会得到加密密钥。仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。而是使用诸如
PBKDF2、Rfc2898DeriveBytes、Argon2、password_hash、Bcrypt之类的函数或持续时间约为 100 毫秒的类似函数。关键是让攻击者花费大量时间通过蛮力查找密码。 -
通过 PHP 使用
password_hash和password_verify,这对是安全且易于使用的。 -
@zaph 谢谢你的好意
标签: php encryption