Cra*_*893 3 c# security string passwords obfuscation
我正在制作一个自定义ftp客户端,它登录到一个ftp站点并转到特定文件夹以避免用户将文件放在错误的位置.
我不是很关心它,但密码只是一个字符串来启动新的ftp对象.
FtpClient ftp = new FtpClient("www.markonsolutions.com", "user", "password");
Run Code Online (Sandbox Code Playgroud)
保持密码不被窥探的最佳方法是什么?
Dan*_*ner 10
FTP仅支持纯文本身份验证 - 如果要隐藏攻击者的密码,则必须使用 FTPS(FTP over SSL).
UPDATE
作为第一步,不要关心在源代码中隐藏和混淆密码 - 您的应用程序必须解密它并通过网络以纯文本形式发送.每个人都可以启动WireShark或任何其他数据包嗅探器并以纯文本形式返回密码.首先确保您不通过网络以纯文本形式发送密码,然后开始考虑在代码中对其进行模糊处理.
UPDATE
在您的代码中对密码进行模糊处理在您以纯文本格式发送时完全没有安全性,但您可以这样做.只是加密字符串会增加一个间接级别.如果没有模糊处理,我必须在您的应用程序中找到密码,而使用Reflector只需几分钟,我需要找到密钥,加密密码和加密方法.这可能只需要几分钟.
使用混淆器防止我反编译您的应用程序(转换为可读代码)可能会让我停止几个小时,直到我找到相关的调用到系统库函数(但我不会尝试,但只是从线上读取密码; ).
因此,我建议不要试图对密码进行模糊处理 - 普通用户可能无法在可执行文件中找到明文密码,并且无法通过混淆来阻止愿意找到密码的人.在这种情况下,唯一的方法是首先不要在您的应用程序中包含密码.