我需要能够在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格式的字符串/文件加载公钥。我已经尝试了一天以上,需要帮助。
感谢。
答案 0 :(得分:0)
正如您所提到的,您正在尝试使用RSA验证签名。所以这应该是你搜索的内容。以下是一些显示如何:
的链接