Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在字符串中隐藏密码_C#_Security_String_Passwords_Obfuscation - Fatal编程技术网

C# 在字符串中隐藏密码

C# 在字符串中隐藏密码,c#,security,string,passwords,obfuscation,C#,Security,String,Passwords,Obfuscation,我正在制作一个自定义ftp客户端,它登录到一个ftp站点并转到一个特定的文件夹,以避免用户将文件放在错误的位置 我不太关心它,但是密码只是一个字符串,用于启动新的ftp对象 FtpClient ftp = new FtpClient("www.markonsolutions.com", "user", "password"); 防止此密码被窥探的最佳方法是什么?了解如何加密和解密字符串,在本例中是您的密码 你也应该考虑你的代码,让有适当工具的人通过调试你的代码来获取密码。 你可以用来保护你的纯

我正在制作一个自定义ftp客户端,它登录到一个ftp站点并转到一个特定的文件夹,以避免用户将文件放在错误的位置

我不太关心它,但是密码只是一个字符串,用于启动新的ftp对象

FtpClient ftp = new FtpClient("www.markonsolutions.com", "user", "password");
防止此密码被窥探的最佳方法是什么?

了解如何加密和解密字符串,在本例中是您的密码


你也应该考虑你的代码,让有适当工具的人通过调试你的代码来获取密码。

你可以用来保护你的纯文本字符串从<强>反射器类程序。

FTP只支持纯文本认证-如果你想隐藏攻击者的密码,你必须使用

更新

作为第一步,不要在意在源代码中隐藏和混淆密码——应用程序必须解密密码并以明文形式通过网络发送。每个人都可以启动或任何其他数据包嗅探器,以明文形式获取密码首先确保您没有通过网络以明文形式发送密码,然后开始考虑在代码中混淆密码。

更新

当您以纯文本形式发送密码时,混淆代码中的密码不会产生任何安全性,但您可以这样做。仅加密字符串就增加了一级间接寻址。在没有混淆的情况下,我必须在你的应用程序中查找密码,这只需要几分钟的时间,通过混淆,我必须找到密钥、加密密码和加密方法。这可能只需要几分钟

使用模糊器阻止我将应用程序反编译(转换为可读代码)可能会让我停下来几个小时,直到找到对系统库函数的相关调用为止(但我不会尝试,只会从线路上读取密码;)


因此,我建议不要试图混淆密码——普通用户可能无法在可执行文件中找到纯文本密码,而愿意查找密码的人也无法通过混淆来阻止。在这种情况下,唯一的方法是首先不要在应用程序中包含密码。

在受保护的文件中创建密码和连接URL配置参数。我使用INI文件,它们被放在一个受web服务器保护的目录中,这样浏览器就无法打开或查看文件/目录。

使用阿拉伯文字符。99%的人看不懂。@David Rutten:想解释一下原因吗?阿拉伯语似乎是世界第六大语言。()考虑另一种方法。假设坏人会获得密码,那么首先,设置帐户,使其只具有写访问权限,并且只对您正在使用的特定目录具有写访问权限。其次,提示用户输入密码是否可行/合理/合适?@Bob Kaufman我们是通过godaddy托管的,所以这是城堡的1号钥匙@David+@joshJordan我不同意,但仅仅因为第六版有些东西并不意味着很多人会读它(不管怎样,我都不会用那个把戏)呵呵。。。与GoDaddy在文件上传方面有相同的问题。FWIW,我的方法是创建一个基于web的客户端,通过HTTP将文件上传到R/wuserfiles目录。文件名是用户名和时间戳的函数。我应该强调的是,这是通过隐蔽性实现的安全性,文件的内容不值得窃取。还有人听说过这个工具吗?我对运行我从未听说过的软件(尤其是在乌克兰托管的软件)有一种固有的不信任感。下载网站上没有列出这一点。我很想得到一些可靠的参考资料,因为这看起来是一个不错的工具。+1-我以为我们在这里只会看到关于在.NET程序集中隐藏密码的答案。这是正确的,我现在不担心嗅探,但我会在以后考虑这一点。启动类似的网络嗅探器要容易得多WireShark()并在应用程序解密密码后直接从电线上读取密码。同意,我只是狭隘地看待这个问题(我想我毕竟需要第二杯咖啡)。我们使用sftp正是出于这个原因。您可以从exe调用web服务,这具有Jay解决方案的优点,而不需要web应用程序。