FTP FileZilla Server 本地加密C# 实现

最近公司要做一个资料管理模块,因系统是C/S架构,原来小文件都是直接使用7Z压缩后保存到SQL Server数据库

而资料管理模块也就是文件上传,下载加权限管理,考虑文件较多,还可能比较大,所以打算在服务器上直接保存文件。

C/S上传文件到服务器,我知道的有几个实现方法:

1、使用IIS服务,通过B/S方式上传到服务器。这种方式需要服务器上部署IIS,提供WebServers服务,上传文件到指定目录后进行数据库编码保存。

2、使用FTP服务,服务端安装FTP服务器,客户端使用FTP类进行访问,好处是如果以后需要文件管理,可以直接使用现有的客户端进行管理。

3、使用TCP通讯方式上传下载。这种方式还需要处理很多问题。

经过几番查找,对比,决定使用第二种方式,使用开源的FileZilla 进行管理

使用FTP方式,就必须能实现服务端能在程序中控制,比如,在系统中添加用户,则服务器也同时能对FTP服务端添加用户操作,及权限分配。

经研究FileZilla Server使用XML配置文件管理,其分支结构非常清晰。

如图:

这是V9.46版本的配置文件,最新版本V9.60已修改了加密方式,添加了SHA512加密,方法还是一样,也可以直接使用C#生成。

static string md5(string a)
        {
            string pwd = "";
            MD5 md5 = MD5.Create();
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(a));
            for (int i = 0; i < s.Length; i++)
            {
                pwd = pwd + s[i].ToString("x2"); 
            }           
            return pwd;       
        }

此方法来源:http://blog.sina.com.cn/s/blog_589b38e70100rtse.html

修改配置文件后需要重新加载,使配置文件生效:

官方手册使用命令行方式    /reload-config 命令就可以重新加载数据了

-------------- "FileZilla Server.exe" Command-line arguments  ------------------Starting and stopping the service:

/start
/stop

Installing the service for manual startup:

/install

Installing the service for start at boot:

/install auto

Uninstalling service:

/uninstall

Reloading configuration at runtime:

/reload-config

重新加载参考:http://www.tuicool.com/articles/AzQBfmU

最新版本V6.0以后 密码生成:

代码:

string [email protected]"<Root><salt>&lt;RhUrxf^l,VZ&amp;7I/[email protected]\p&apos;^cEmPEWyYMjS8^&amp;HY1Z|J.2#u2Z}]HF0i9</salt></Root>";
XmlDocument xmldoc=new XmlDocument();
xmldoc.LoadXml(txt);

string oldPass="05087D2082B206535713C1D5BDCA35509BE70B8C4F513F7E5F9799187DCB7F366011DB51AFACC67D1035A8EE7C04C6C12E92A4330808DDA4FF9F9946A09076FA";
string pass="123";
string salt=xmldoc.ChildNodes[0].InnerText;
salt.Dump();
byte[] bytValue = System.Text.Encoding.UTF8.GetBytes(pass+salt);

SHA512 sha512 = new SHA512CryptoServiceProvider();
byte[] retVal = sha512.ComputeHash(bytValue);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("X2"));
}

bool isComp= ( oldPass==sb.ToString());
isComp.Dump();

时间: 2024-11-10 13:16:30

FTP FileZilla Server 本地加密C# 实现的相关文章

[备忘]Windows Server 2008 R2部署FTP FileZilla Server防火墙设置

有一台服务器,之前文件迁移少,现准备用FileZilla Server当FTP服务器,服务器系统是Windows Server 2008 R2,同样适用FileZilla Client连接服务器FTP,总是出现连接超时的情况. 防火墙的入站.出站已经都允许了修改之后的FTP端口,只要防火墙关闭就能连上,说明还是防火墙拦截了. 最后发现,一定要在出站和入站规则里面,同时把FileZilla的服务应用程序(在FileZilla安装目录下的FileZilla server.exe) 设为允许,立刻就能

Windows下使用FileZilla[Server+Client]搭建FTP服务

FTP服务器,客户端开源的,商业的非常多,尝试过不少,真心觉得FileZilla不错,流行,开源,稳定,安全,高性能. 下面通过图示的方式说明快速上手FileZilla,这里插播几句话,关于FTP的可以另作了解,而FileZilla可以看作是两款普通的配套来用的软件(Server+Client). 1.下载软件包 FileZilla Server:https://filezilla-project.org/download.php?type=server FileZilla Client: ht

【阿里云】在 Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务

 Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server: https://filezilla-project.org/download.php?type=server . 在本地也需要安装 FileZilla Client :https://filezilla-project.org/download.php?type=client 二.配置FTP端口

windows 下使用 Filezilla server 搭建 ftp 服务器

1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows  https://filezilla-project.org/ 3. 安装完成之后,在桌面点击 filezilla server 图标,打开管理器,,登陆,默认ip 127.0.0.1,端口,默认14147: 密码,默认无 4. 在管理中心配置 访问用户,ftp主目录,权限,即可 5. 在本机测试ftp访问, 浏览器 ftp://127.0.0.1  输入上面管理中心添加的用户名和密码,即可访

Windows 2008 利用Filezilla server搭建FTP

Windows 2008 利用Filezilla server搭建FTP, 安装后总是提示Error Connection To Server Lost , 后来,无意中先安装了IIS,再安装filezilla,就莫名的运行正常了,不再提示error. 真是...

filezilla server客户端FTP连接不上解决

windows服务器上安装Filezilla server后,本地客户端连接不上.解决办法: 1.在防火墙把filezilla的 Filazilla server interface.exe 和Filezilla server.exe 二个文件都加入防火墙的例外 2.在filezilla serve软件里的被动模式传输使用的外部服务器IP地址写你的本来主机IP

filezilla server FTP 安装报错 &quot;could not load TLS network. Aborting start of administration interface&quot;

filezilla server FTP 安装报错   "could not load TLS network. Aborting start of administration interface" 需要安装一个系统补丁 kb 2533623 https://forum.filezilla-project.org/viewtopic.php?t=39838 According to the forum above, you need to install https://suppor

Filezilla Server支持FTP的Passive被动模式

Filezilla Server的配置: 1.Filezilla默认的模式是Port模式,不是Passive被动模式.为了解决防火墙后的客户端连接问题,最好是启用Passive模式.要启动被动模式,首先打开管理控制台,点击左起第三个图标 进入系统设置. 点击左侧"Welcom message"菜单,即FTP登录后的欢迎信息. 为了安全起见,强烈建议修改默认的欢迎信息为"Welcom to Serv-U FTP Server",这样Filezilla在欢迎消息中就会S

FileZilla Server ftp 服务器下通过alias别名设置虚拟目录(多个分区)

最近检查服务器的时候发现磁盘空间不够用了,正好有两个硬盘正好,一个硬盘还空着,正好通过ftp服务器的别名功能实现添加空间了,这样就不用重新弄机器了 说明:FileZilla Server 的虚拟目录设置与其它 FTP 服务器软件有所不同.在 FileZilla Server 中设置虚拟目录,必须采用 FTP 根目录 + 虚拟目录名的形式来进行.比如你 FileZilla Server 的根目录(即 Home 目录)为 E:\ftp,现在你要将 D:\media 加入虚拟目录,则需要在 D:\me