0

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# で必要なのは、次の簡単な方法だけです。

  • 前述の形式またはRSACryptoServiceProviderXML 形式の文字列/ファイルから公開鍵をロードします。
  • 読み込まれた公開鍵で復号化する

私は今、1日以上試していて、これについて助けが必要です.

ありがとう。

4

1 に答える 1