首页 > 解决方案 > 有没有办法可以获取存储在数据库中的解密密码?

问题描述

我正在尝试创建一个登录表单,其中密码在 oracle DB 中加密,我无法在 php 中的 select 语句中解密密码。当我输入正确的密码时,会弹出错误消息,当我尝试输入加密后的密码时,它会继续登录,

$strSQL = "SELECT USER_ID, PASS_WORD FROM VW_SMF_USERS WHERE USER_ID = 
           '".trim($_POST['txtUseremail'])."' 
           AND PASS_WORD = '".trim($_POST['txtUserpassword'])."'";

$objParse = oci_parse ($objConnect, $strSQL);
oci_execute ($objParse,OCI_DEFAULT);
$objResult = oci_fetch_array($objParse);

标签: phporaclesecurityencryption

解决方案


我可以理解您当前的情况,您已经在数据库中对密码进行了哈希处理,并且您正在将 user_input 密码直接查询到数据库,这就是为什么应用程序使用哈希而不是纯文本密码登录的原因。您需要首先在所需的哈希(md5,sha)中加密 user_input 密码,
例如 md5:

"SELECT USER_ID, PASS_WORD FROM VW_SMF_USERS WHERE USER_ID = 
           '".trim($_POST['txtUseremail'])."' 
           AND PASS_WORD = '".md5($_POST['txtUserpassword'])."'";

推荐阅读