1

Crypto++ を使用して公開/秘密キーのペアを生成し、クライアント側で Crypto++ (RSAES_OAEP_SHA_Encryptor) を使用してパスワードをエンコードしてから、base64 でエンコードします。ここで、サーバー側の PHP スクリプト (phpseclib 経由) でデコードしたいと思います。秘密鍵の形式は「MIIEuwIBADANBgkqhkiG9w0BAQ ....」(改行なし)であり、次のように形式設定します。

static $BEGIN_MARKER = "-----BEGIN RSA PRIVATE KEY-----";
static $END_MARKER = "-----END RSA PRIVATE KEY-----";
$pem = $BEGIN_MARKER . "\n";
$pem .= chunk_split($key, 64, "\n");
$pem .= $END_MARKER . "\n";

ロードする前に:

$rsa->loadKey($pem,CRYPT_RSA_PRIVATE_FORMAT_PKCS1);

これはうまくいくようです。ただし、次の方法でメッセージをデコードします。

$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$plaintext = $rsa->decrypt(base64_decode($input));

空の文字列のみを生成します。エラーは表示されません。

問題なくメッセージをデコードできる同様のASP.Net C#ハンドラーがあります...

何か案は ?

4

1 に答える 1

1

私はphpseclibの0.2.2ディストリビューションを使用していましたが、phpseclibのSVNヘッドを試しましたが、完全に機能します:)

于 2011-12-13T05:48:54.527 に答える