【发布时间】:2018-11-28 21:59:33
【问题描述】:
我正在移植一些在我们的后端系统上运行的遗留 PHP 软件。现有应用程序通过调用 CLI 工具来执行 OpenSSL,以加密通过 apache 提供的文件。
我正在尝试构建的是具有相同功能但不必调用任何 CLI 工具或将文件保存在磁盘上的 ASP.NET 核心 WebAPI。 API 将从存储库中获取数据、加密并动态提供结果。但是,为了保持向后兼容性——我需要确保文件可以被任一系统加密/解密。
对于如何仅使用 ASP.NET Core 2 中可用的内容来解密以前使用 OpenSSL 加密的文件,我有点不知所措。我知道用于加密文件的密码,但我不明白它与 .NET 中加密库的要求有何关系。
以下是用于加密的示例 OpenSSL (v0.9.8) 命令:
openssl enc -e -aes-256-cbc -k abc123 -in abc123.xml.tmp -out abc123.xml
如何仅使用 ASP.NET 核心将文件转换回纯文本?
如何使用 C# 重新加密,以便能够使用 OpenSSL CLI 工具解密?
【问题讨论】:
-
不幸的是,没有。我坚持的问题是我不知道 key/IV 实际上应该是什么。我的假设是密钥是某种形式的 passphase 哈希,我不知道如何推导出 IV。
标签: c# asp.net encryption openssl asp.net-core-webapi