2017-03-17 60 views
-1

我在我的mysql数据库中保存了AES_ENCRYPT的密码,现在我有一个小函数可以获取解密后的密码。mysql的结果AES_DECRYPT

这是函数

function get_clear_pw($tab,$param) 
{ 
    global $m; 
    if($_SESSION['APP4']['SITEID']<=0 or $_SESSION['ACTIVE_USER']['ID']<=0){ return 'no way'; } 

    $query[1]="WHERE `SITEID`='".$_SESSION['APP4']['SITEID']."' "; 
    $query[0]="SELECT AES_DECRYPT(PW,'mykey') FROM"; 
    $resDB=app_db($m['ID'].'_SITE_'.$tab, $query, ''); 
    $resDB=$resDB[0]; 
    return $resDB; 
} 

作为结果为

$pw=get_clear_pw('FTP',FALSE); 
Print_r($pw) 

我得到这个 阵列([AES_DECRYPT(PW, 'meinkey')] =>试验)

现在我想有echo $ pw =>'test'或echo $ pw [0] =>'test'

我不想要以“AES_DECRYPT(PW,'mykey')”为关键字。

我该怎么做?

+0

是的,我知道,在这种特殊情况下,我需要加密 – newbieRB

+0

你应该添加一个'as': 'AES_DECRYPT(PW,'mykey')AS密码' –

+1

有*没有*特殊情况,我知道哪些应该允许解密密码。 –

回答

0

通常用于密码单向散列使用。 这是一个安全措施,以确保如果有人进入您的服务器,他们无法解密密码。

在这种情况下,当用户在登录时输入密码时,您只需对其进行哈希处理,然后比较哈希值。

来看一下,

http://php.net/manual/en/function.password-hash.php

http://php.net/manual/en/function.password-hash.php

的PHP版本5.5+

+0

所以它是,但在这种情况下,这是外部密码,所以我不能检查他们自己,这就是为什么我必须解密他们 – newbieRB

+0

@newbieRB好点,不是从问题中清楚。 –

+1

有人允许您访问外部密码吗?好悲伤! –