1

我正在寻找一种方法来加密 C# 上的一些数据,在 .NET 3.5 上运行。加密必须使用非对称算法完成,并且必须使用私钥进行加密。

.NET框架自带的 RSACryptoServiceProvider类只提供公钥加密,这样就出局了;而且,尽管我确实寻找了一些库来做到这一点,但我找不到任何可以解决不依赖于System.Numerics.BigInteger类的问题的库,即 .NET 4.0(或者可能是 4.5,但仍然没有在 3.5 中工作)。

理想情况下,我想要的是能够使用一个可以完成这项工作的库,或者能够编写(无需从头开始重写一些算法实现)一个执行以下操作的类:

public class SomeAlgorithm {
  public SomeAlgorithm (string xmlKey) {
    // something
  }

  public byte[] encrypt (byte[] data, bool usePrivateKey) {
    // note that data should be able to take an arbitrarily large size
    // I don't expect it to become any larger than 300 or 400 bytes, but
    // the implementation should be able to handle arbitrary-size data

    // do something
  }

  public byte[] decrypt (byte[] encryptedData, bool usePrivateKey) {
    // the same constraints apply to encryptedData here

    // do something
  }
}

请注意,我不是在寻找签名,我实际上需要用私钥加密所有数据。我知道这不是使用算法的正常方式,以及能够使用公钥解密数据的安全隐患。在这种特殊情况下,基于签名和对称加密的实现不会有用。这里的要求有点离奇,但最终,我实际上需要这样做。我注意到这里的类似问题收到了主要的负面回应,实际上根本没有解决问题,所以我添加了这个免责声明。

4

0 回答 0