Я пытаюсь расшифровать шифр, который я беру с моего взломанного iphone, но я не знаю, почему функция расшифровки RNCryptor всегда возвращает нулевое значение, когда я помещаю значение $ _get в функцию, но оно работает нормально, когда я помещаю необработанные данные расшифровать функцию. Кто-нибудь имеет представление об этой проблеме?
Это код, который возвращает нулевое значение:
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';
}
Но когда я помещаю необработанные данные шифра, этот кодовый блок работает хорошо:
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';
}
Извините, я просто подтвердил, что параметр $ _get просто кодируется при отправке через URL, поэтому все символы «+» были заменены на пробел. Это мое решение:
$password = "mykey";
$stringCipher = explode('?info=', $_SERVER['REQUEST_URI'], 2);
$base64Encrypted = $stringCipher[1];
$cryptor = new \RNCryptor\Decryptor();
$decryptSerial = $cryptor->decrypt($base64Encrypted, $password);
Других решений пока нет …