2013-03-18 292 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