c# - 在c#源代码中隐藏密码

标签 c# .net passwords

我在 c# 中使用以下代码从我的网站下载文件:

WebClient webClient = new WebClient();
webClient.Credentials = new System.Net.NetworkCredential("username", "password");
webClient.DownloadFile("http://example.com/file.txt", "file.txt");

文件只有在满足特定条件时才会下载,所以我不希望用户能够访问我网站上的文件

我担心的是,如果 curios 用户反编译代码,他将找到密码并能够访问我网站上的所有文件。

我读到保存密码的安全方法是存储它的哈希值,但我不知道如何在这个例子中实现它。

我有哪些选择可以确保我的密码安全并使用户无法找到它?

最佳答案

一个发人深省的现实:您不能像这样保护程序中包含的信息。

必须做的事:选择一个用于访问此单个程序所需的特殊文件的用户名/密码 - 不是您的“访问我的整个网站”用户名和密码。

但要知道,您所做的只是在这里添加一点障碍;任何想要的人都可以检查您的程序并找到用户名和密码。

做到这一点的唯一“正确”方法是根据用户自己的凭据进行操作;例如,他们在您自己的系统中的用户名和密码。然后,您需要根据该信息授予他们访问权限,并且您的程序需要提示他们进行访问。

关于c# - 在c#源代码中隐藏密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146340/

相关文章:

C# 编译器 : Preprocess Only

c# - 当存在 500 个实时实例时,ColorConvertedBitmap 的构造失败

c# - CoCreateInstance 失败,返回 0x80131500

azure - 在 azure 上重置 CentOS 6.9 vm 的 root 帐户密码?

security - 如何存储加密的设置?

c# - 为什么 RNGCryptoServiceProvider 值总是以等号结尾?

c# - Ecma-334 是否对下一行(C# ECMA 标准)的描述不正确?

c# - 如何使用 .NET 在我的计算机中获取网络连接列表?

c# - C# 中的字段和属性最佳实践

c# - 在 Windows 窗体上显示十进制值