安全问题:将密钥存储为字符串的安全性

问题描述 投票:0回答:1

我正在使用.NET 4.7.1和Visual Studio 2017(社区版),我一直将敏感的密钥/许可证数据存储为程序中的字符串。假设我们有以下字符串:

string password = "admin123" 

在十六进制编辑器或类似方法中提取的安全性如何?我不太熟悉十六进制编辑,但经过几次微不足道的搜索后,似乎字符串在某种程度上被混淆了。

非常感谢任何见解,谢谢。

c# .net binary hex
1个回答
3
投票

这无论如何都不安全。任何拥有反汇编程序(如ILSpy)和您的应用程序的人都可以访问您的密码。

为了说明,我创建了一个愚蠢无意义且简单的控制台应用程序:

using System;
namespace TestApp
{
    class Program
    {
        private static string password = "admin123";

        static void Main(string[] args)
        {
            Console.Write($"My ultra top secret password is: {password}.");
        }
    }
}  

我编译了它,并在ILSpy中打开它。这是我看到的: ILSpy screenshot of password in app 哦,小伙子,这不好......

简而言之,不要在代码中以纯文本格式存储敏感信息。假设您在app / DLL中编码的任何内容都不会自动混淆/安全。这不安全。这里有很多其他帖子比我更能详细介绍这个主题,所以我不会在这里讨论“如何”。

© www.soinside.com 2019 - 2024. All rights reserved.