c# - 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 - 如何在 Linux 中获取显示设备名称
- symfony - 为什么当我运行 phpunit 时在测试环境中构建 symfony 容器,而 .env 将 APP_ENV 定义为 dev?
- sql - 按另一列中的结果计算唯一标识符
- asp.net-mvc - 我怎样才能使我的 MVC 应用程序内幕能够
- datatable - 如何使用 jquery 过滤数据表并添加值
- python - Django 查询 Select X from Table where Y = Z
- .net - .net 核心应用程序是否存在依赖于框架的部署并添加了 nuget 包?
- c++ - C++ 等效于 C# 对象关键字
- c# - 在出现特定字母后获取字符串的其余部分
- google-apps-script - 将值复制并粘贴到 Google 电子表格中的第一个空行的脚本,其他数字前面为零