2013-03-18 196 views
1

是否有任何可能的或简单的方法来解密这部分的加密?PHP - 解密加密密码

$mixpw .= chr((int) ((sqrt((ord($_POST['passwd'][$i]) << 2) * 974169 * (ord($_POST['passwd'][$i]))) >> 1)/(314.33 * 3.14)) + 2.12); 

由于按位移,对我来说似乎太复杂了。

这是加密的完整代码:

$mixpw = ''; 
$curM = 0; 
for($i = 0; $i < strlen($_POST['passwd']); $i++) { 
    if($curM == 0) { 
     $mixpw .= ($i+2 < strlen($_POST['passwd'])) ? $_POST['passwd'][$i+2] : $_POST['passwd'][$i]; 
    } else if($curM == 1) { 
     $mixpw .= chr((0x46+$i) % 254) . $_POST['passwd'][$i]; 
    } else if($curM == 2) { 
     $mixpw .= ucfirst($_POST['passwd'][$i-2]); 
    } else if($curM == 3) { 
     $mixpw .= chr((int) ((sqrt((ord($_POST['passwd'][$i]) << 2) * 974169 * (ord($_POST['passwd'][$i]))) >> 1)/(314.33 * 3.14)) + 2.12); 
    } 
    $curM = ($curM+1 > 3) ? 0 : $curM+1; 
} 

和加密的密码是:CG3ST3KT

我设法得到原来的密码的前3个字母:S3C

+2

这些日子谁为密码使用自制加密? – 2013-03-18 11:28:16

+0

这是一个学校作业 – QuantumHive 2013-03-18 11:28:41

+0

大多数密码系统故意使用单向哈希与可逆加密来避免这种确切的用例。 – Joe 2013-03-18 11:50:07

回答

0

我想出了一个解决方案!前三种加密不难解密。
但是为了解决第四个问题,我刚刚复制了加密代码,并试图猜出前三个字符后面的一些字符。在获得正确的加密之前,这不会花太长的时间来猜测。
最终该加密的密码是s3CReT