在.NET中实现加密技术的强大而简单?

时间:2012-01-20 15:54:57

标签: .net asp.net-mvc-3 encryption base64 aes

我正在研究.Net4和MVC3上的一个学生项目。 项目几乎完成,除了一些安全功能,如用于保存配置文件的编码/解码信息,如连接字符串等。

我想避免一个非常复杂的解决方案,所以我在.NET中寻找一些易于使用的加密技术,理想情况下,我可以提供一个KEY和String,它可以让我回复编码文本,反之亦然(类似)到下面给出的Base64示例。)

我在网上浏览了MSDN的System.Security.Cryptography命名空间文档,但是对于像我这样的新手我有很多选择。

请向我提供建议和实现目标的路径。 谢谢。


在搜索时,我发现了一个简单的Base64解决方案,我实现了这样:

    static public string EncodeTo64(string toEncode)
    {
        byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode);
        string encodedValue = System.Convert.ToBase64String(toEncodeAsBytes);
        return encodedValue;
    }

    static public string DecodeFrom64(string toDecode)
    {
        var toDecodeAsString = System.Convert.FromBase64String(toDecode);
        string decodedValue = System.Text.ASCIIEncoding.ASCII.GetString(toDecodeAsString);
        return decodedValue;
    }

工作正常,但问题是我已经知道这不是非常可靠的东西,因为静态编码技术(没有自定义KEY的技术)可以很容易地解码,并且网上有很多在线基础64解码器。我也尝试使用AES as expalined here但未能成功。

2 个答案:

答案 0 :(得分:2)

对于最大简单,只需查看Windows的Data Protection API(DAPI)即可。这将提供加密,无需要求您处理密钥。

您可以使用.NET中提供的ProtectedData类轻松使用它。

答案 1 :(得分:1)