-3

現地送金サービスからPHPで暗号化されたデータを復号化しようとしています。

次のようなPHPの例があります。

<?php

require_once('phpseclib/Crypt/AES.php');


define('API_PASSKEY', 'abcdefghijklmnop');

if($_SERVER['REMOTE_ADDR'] == '203.146.127.115' && isset($_GET['request']))
{
    $aes = new Crypt_AES();
    $aes->setKey(API_PASSKEY);
    $_GET['request'] = base64_decode(strtr($_GET['request'], '-_,', '+/='));
    $_GET['request'] = $aes->decrypt($_GET['request']);
    if($_GET['request'] != false)
    {
        parse_str($_GET['request'],$request);
        $request['Ref1'] = base64_decode($request['Ref1']);

        echo 'SUCCEED';
    }
    else
    {
        echo 'ERROR|INVALID_PASSKEY';
    }
}
else
{
    echo 'ERROR|ACCESS_DENIED';
}
?>

ただし、C#で復号化したいと思います。

また、テスト用に単純なPHP暗号化テキストを設定しましたが、C#でも復号化できません。

<?php 
include('phpseclib/Crypt/AES.php');

$aes = new Crypt_AES();

$aes->setKey('abcdefghijklmnop');

$plaintext = 'Hello';

$cryptoText = $aes->encrypt($plaintext) ;

$cryptoText =  base64_encode( $cryptoText);

echo $cryptoText . "<br/>";

echo $aes->decrypt(base64_decode($cryptoText));


?>

私はあなたの良い提案を得るのを楽しみにしています。

4

1 に答える 1

0

phpseclib はデフォルトで CBC を使用し、PKCS#7 パディングが有効になっている場合は 128 ビット キーを使用します。

于 2012-06-23T15:48:14.350 に答える