c# RSA解密与公钥-弹性城堡

本文关键字:城堡 公钥 RSA 解密 | 更新日期: 2023-09-27 18:16:14

我需要能够在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格式的字符串/文件加载公钥。
  • 使用加载的公钥解密

我已经试了一天多了,现在需要帮助。

谢谢。

c# RSA解密与公钥-弹性城堡

正如您提到的,您正在尝试使用RSA验证签名。这就是你要找的。这里有一些链接告诉你如何做:

  • 验证。net中的签名。
  • .NET和BouncyCastle中RSA签名验证的讨论
  • 更多关于。net的RSA签名/验证讨论