首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密appConfig configSection c#的一部分

加密appConfig configSection c#的一部分
EN

Stack Overflow用户
提问于 2011-11-16 21:20:47
回答 3查看 483关注 0票数 1

我有服务器设置的自定义配置节,包括:服务器的用户名、密码和IP;我需要使用以下类型获取加密配置:

代码语言:javascript
复制
<ApplicationServerConfiguration>
  <Server UserName="ASDASDASDASDAS [Some encrypted value] ASDASDASF"/>
  <Server Password="ASDASDASDASDAS [Some encrypted value] ASDASDASF"/>
  <Server ServerAddress="192.168.255.255"/> **Not encrypted value!**
</ApplicationServerConfiguration>

我可以加密整个configSection,但不能加密一部分。谁知道如何只加密configSection的一部分?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-16 21:23:50

不可能只加密部分区段。如果您希望能够对UserName和Password值进行加密,则必须将它们放入单独的部分。

票数 2
EN

Stack Overflow用户

发布于 2011-11-16 21:28:06

您可以手动对它们进行加密和解密

代码语言:javascript
复制
    private static string EncryptString(string Value)
    {
        string ReturnValue = string.Empty;

        MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
        byte[] TDESKey = HashProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes("Bermuda"));

        using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider())
        {
            provider.Key = TDESKey;
            provider.Mode = CipherMode.ECB;
            provider.Padding = PaddingMode.PKCS7;

            ICryptoTransform Encryptor = provider.CreateEncryptor();
            byte[] ByteValue = ASCIIEncoding.ASCII.GetBytes(Value);

            ReturnValue = Convert.ToBase64String(Encryptor.TransformFinalBlock(ByteValue, 0, ByteValue.Length));
        }

        return ReturnValue;
    }
    private static string DecryptString(string EncryptedValue)
    {
        string ReturnValue = string.Empty;

        MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
        byte[] TDESKey = HashProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes("Bermuda"));

        using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider())
        {
            provider.Key = TDESKey;
            provider.Mode = CipherMode.ECB;
            provider.Padding = PaddingMode.PKCS7;

            ICryptoTransform Decryptor = provider.CreateDecryptor();
            byte[] ByteValue = Convert.FromBase64String(EncryptedValue);

            ReturnValue = ASCIIEncoding.ASCII.GetString(Decryptor.TransformFinalBlock(ByteValue, 0, ByteValue.Length));
        }

        return ReturnValue;
    }
票数 4
EN

Stack Overflow用户

发布于 2011-11-16 21:22:39

App.config根本不是存储安全凭证的好地方!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8152328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档