Мне нужно иметь возможность шифровать небольшой хэш на PHP и позже расшифровать его на C#, чтобы сравнить хэш с данными. Так что да, он используется в качестве подписи для проверки происхождения данных.C# RSA Decryption с открытым ключом - Bouncy Castle
Что у меня возникли проблемы с является (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. - Дешифровка с загруженным открытым ключом
я пытался в течение более суток, сейчас и нужно помочь с этим.
Спасибо.