-1

ジェイルブレイクされたiPhoneから取得した暗号を復号化しようとしていますが、$_get値を関数に入れるとRNCryptor復号化関数が常にnull値を返す理由がわかりませんが、生データを入れるとうまくいきます関数を解読します。誰でもこの問題について考えがありますか? これは、null 値を返すコードです。

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';
}
4

1 に答える 1

0

申し訳ありませんが、URL 経由で送信するときに $_get パラメータがエンコードされているため、すべての「+」文字がスペース文字に変更されていることがわかりました。これが私の解決策です:

 $password = "mykey";
    $stringCipher = explode('?info=', $_SERVER['REQUEST_URI'], 2);
    $base64Encrypted = $stringCipher[1];
    $cryptor = new \RNCryptor\Decryptor();
    $decryptSerial = $cryptor->decrypt($base64Encrypted, $password);
于 2016-06-25T16:58:30.880 に答える