2016-06-25 12 views
-1

entschlüsseln Ich versuche, die Chiffre zu entschlüsseln, die ich von meinem jailbroken iphone nehme, aber ich weiß nicht, warum die RNCryptor Entschlüsselungsfunktion immer null Wert zurückgeben, wenn ich das $ _get Wert zu funktionieren, aber es funktioniert gut, wenn ich die rohen Daten entschlüsseln Funktion. Hat jemand eine Vorstellung von diesem Problem? Diese ist der Code, den Nullwert zurück:

if(isset($_GET['info'])){ 

    $password = "mykey" 
    $base64Encrypted = $_GET['info']; 
    $cryptor = new \RNCryptor\Decryptor(); 
    $plaintext = $cryptor->decrypt($base64Encrypted, $password); 
    echo $plaintext;//=> this code block return null value 

}else{ 
    echo 'not have info params'; 
} 

Aber wenn ich rohe Chiffre Daten setze dieser Codeblock läuft gut:

if(isset($_GET['info'])){ 

    $password = "mykey" 
    $base64Encrypted = 'AwEEeG/CU0VHXVGvuRcm805DvvVQi32NPjmlQxoaniIL9ngCjNY1Su4jEb2IfCILBvhKIdjl1znysm6SMiFmRZi2St8wCcWCmnImdwAPLysB/g=='; 
    $cryptor = new \RNCryptor\Decryptor(); 
    $plaintext = $cryptor->decrypt($base64Encrypted, $password); 
    echo $plaintext;//=> this code block return the original value of cipher 

}else{ 
    echo 'not have info params'; 
} 

Antwort

0

Sorry, ich firgure heraus nur, dass der $ _get param gerade sein codiert, wenn über URL gesendet, so dass alle '+' Zeichen in Leerzeichen geändert wurden. Das ist meine Lösung:

$password = "mykey"; 
    $stringCipher = explode('?info=', $_SERVER['REQUEST_URI'], 2); 
    $base64Encrypted = $stringCipher[1]; 
    $cryptor = new \RNCryptor\Decryptor(); 
    $decryptSerial = $cryptor->decrypt($base64Encrypted, $password); 
Verwandte Themen