【问题标题】:How to echo out decrypt data in PHP如何在 PHP 中回显解密数据
【发布时间】: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.
  • 不要加密密码,当攻击者得到数据库时,他也会得到加密密钥。仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。而是使用诸如PBKDF2Rfc2898DeriveBytesArgon2password_hashBcrypt 之类的函数或持续时间约为 100 毫秒的类似函数。关键是让攻击者花费大量时间通过蛮力查找密码。
  • 通过 PHP 使用 password_hashpassword_verify,这对是安全且易于使用的。
  • @zaph 谢谢你的好意

标签: php encryption


【解决方案1】:

这里不需要使用别名吗?

SELECT aes_decrypt(pass, 'k') AS pass_decrypted FROM ...

然后用

访问它
echo $row['pass_decrypted'];

【讨论】:

    【解决方案2】:

    在您的结果集中是名为 used 函数的密码列。您只需要设置该列的别名,例如:aes_decrypt(pass,'k') as 'pass':

    SELECT UserNameID, userName, aes_decrypt(pass,'k') as pass FROM username
    

    您的 PHP 代码期望结果集中的列 'pass'..

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多