【问题标题】:Using openssl with C#在 C# 中使用 openssl
【发布时间】:2018-06-06 12:07:02
【问题描述】:

我正在尝试完成这个挑战:https://cryptopals.com/sets/1/challenges/7,我在使用此处找到的 openssl.net 库时遇到了一些问题:http://openssl-net.sourceforge.net/

我查看了标准 OpenSSL 文档和可用于 openssl.net 库的一些文档,但我无法弄清楚如何使用挑战中描述的 Openssl 密码功能(“最简单的方法:使用 OpenSSL::Cipher 并给它 AES-128-ECB 作为密码。")

有没有人知道一个类似的库,其中包含更多我可以使用的文档,或者有人可以给我一个 OpenSSL::Cipher 加密或解密函数的示例来帮助我入门吗?

【问题讨论】:

    标签: c# windows openssl


    【解决方案1】:

    你并不真的需要 OpenSsl 来解决这个简单的问题。 .NET 库绰绰有余:

    using (var aes = new AesManaged())
    {
        byte[] key = Encoding.ASCII.GetBytes("YELLOW SUBMARINE");
        aes.Key = key;
        aes.Mode = CipherMode.ECB;
    
        string b64 = File.ReadAllText("7.txt");
        byte[] bytes = Convert.FromBase64String(b64);
    
        using (var decryptor = aes.CreateDecryptor())
        {
            byte[] result = decryptor.TransformFinalBlock(bytes, 0, bytes.Length);
            string text = Encoding.ASCII.GetString(result);
        }
    }
    

    请注意,通常我尽量不使用Encoding.ASCII(我更喜欢使用Encoding.UTF8),因为在这个世界上很少有东西是真正的ASCII......但这个问题似乎是其中之一:-)

    【讨论】:

    • 我可以在我的 c# 网络服务器中使用 openssl 作为第三方库来实现 Sni 吗?你有什么主意吗?我读了很多,发现 schannel windows api 的文档很差,特别是 sni 实现
    猜你喜欢
    • 2017-01-21
    • 2016-11-29
    • 2012-02-22
    • 2023-03-02
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多