【问题标题】:replicating openssl encryption in .NET?在.NET中复制openssl加密?
【发布时间】:2011-03-24 23:38:29
【问题描述】:

我想知道是否有人可以提出一种在 .NET 中复制以下 openssl 命令行的好方法?我不是在找人写代码,只是建议最好的使用方法。我让 RijndaelManaged 工作在 AES 256 CBC 模式下,并且可以对其进行 base64 编码等。但是,我不清楚 openssl 是如何生成\使用“salt”的 - 盐是结果 base64 编码输出的一部分吗?

$ echo 1234 | openssl enc -aes-256-cbc -a -salt -pass pass:<passphrase>

有没有关于 openssl 命令行的体面文档的指针? (我在http://openssl.org/docs/apps/openssl.html 上没有看到 salt 或 aes-256-cbc)

编辑:

好的,在 http://openssl.org/docs/apps/enc.html# 找到了 openssl enc 的文档 - 只是想了解一下。 :)

EDIT2:

我认为这更接近我所需要的 (http://deusty.blogspot.com/2009/04/decrypting-openssl-aes-files-in-c.html)

【问题讨论】:

    标签: .net openssl aes


    【解决方案1】:

    OpenSSL 基本上是一些带有它们的 dll 并且可以在它们之上执行。 sourceforge 上有一个旧项目OpenSSL.Net 可以在 C# 中绑定它们,也许你可以从那里开始。

    【讨论】:

    • 赞成,因为这是一个不错的选择。不过,我更愿意坚持使用 .net 框架加密类。
    • 实际上我会将此标记为答案,因为这可能是明智的做法。终于让它按我想要的方式工作了:) stackoverflow.com/questions/5452422/…
    【解决方案2】:

    openssl des3 decrypting in java 的答案应该会让你继续前进。

    【讨论】:

    • 谢谢,这很有帮助,但如果能找到一个 AES 示例就好了。
    【解决方案3】:

    您也可以通过OpenSSL Library for .NET 实现此目的

    DidiSoft.OpenSsl.OpenSslCipher cipher = new DidiSoft.OpenSsl.OpenSslCipher();
    bool isBase64 = true;
    string encrypted = cipher.EncryptString(CipherAlgorithm.Aes_256_Cfb, "1234", 
                                            "<passphrase>", isBase64);
    

    免责声明:我为滴滴软件工作

    【讨论】:

      猜你喜欢
      • 2011-11-07
      • 2016-03-30
      • 2011-07-24
      • 2018-11-29
      • 2015-06-06
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多