首页 > 解决方案 > RSACNG 加密适用于服务,但因 ui 而失败

问题描述

我有一个 VS 解决方案。我有 5 个创建 3 个可执行文件的项目。其中两个可执行文件作为服务运行,一个是 Windows 窗体可执行文件。这三个都包含在一个 inno 安装程序中。当我安装 3 个应用程序时,这两个服务使用加密很好,绝对没有问题。当 UI 尝试运行时,它失败了result = crypto.Decrypt(data, oaepSHA256);,我收到错误:

“异常”:“System.Security.Cryptography.CryptographicException:参数不正确。

我知道该参数可以工作,因为它确实适用于这两个服务。

public static byte[] Decrypt(string keyName, byte[] data)
{
    RSA crypto = GetRSACNGKey(keyName);
    byte[] result = null;
    try
    {
        Logger.Debug(" VHEncryptionRSA.decrypt ");
        RSAEncryptionPadding oaepSHA256 = RSAEncryptionPadding.OaepSHA256;
        result = crypto.Decrypt(data, oaepSHA256);
    }
    catch (Exception ex)
    {
        Logger.Error(" VHEncryptionRSA.decrypt fails", ex);
    }
    return result;
}

我不明白为什么 UI 会出现错误?

所有三个程序都在解密同一个文件。crypto.Decrypt(data, oaepSHA256);所有三个程序的参数都是相同的。

标签: c#encryption

解决方案


推荐阅读