PHP で小さなハッシュを暗号化し、後で C# で復号化して、ハッシュをデータと比較できるようにする必要があります。そうです、データの出所を確認するための署名として使用されています。
私が問題を抱えているのは、(A)キーのロード(B)公開キーによる復号化です
キーを簡単にRSACryptoServiceProvider
ロードできますが、公開キーによる復号化はサポートされていません。
Bouncy Castle を試してみましたが、キーをロードして復号化する方法を示す簡単な例が見つかりません。
次のいずれかの形式でキーのコピーを取得できます。
CRYPT_RSA_PUBLIC_FORMAT_RAW
CRYPT_RSA_PUBLIC_FORMAT_PKCS1_RAW
CRYPT_RSA_PUBLIC_FORMAT_OPENSSH
CRYPT_RSA_PUBLIC_FORMAT_PKCS1
暗号化のための私の PHP コードは十分に単純で、問題なく動作します。
<?php
include 'PHPSecLib/Crypt/RSA.php';
$privatekey = file_get_contents('privatekey.txt');
$rsa = new Crypt_RSA();
$rsa->loadKey($privatekey);
$cipher = $rsa->encrypt("simple hash");
file_put_contents('cipher.txt', ($cipher));
C# で必要なのは、次の簡単な方法だけです。
- 前述の形式または
RSACryptoServiceProvider
XML 形式の文字列/ファイルから公開鍵をロードします。 - 読み込まれた公開鍵で復号化する
私は今、1日以上試していて、これについて助けが必要です.
ありがとう。