c#开发FTP客户端的问题(OTP加密)

javaxi 2010-01-19 11:54:50
代码已经可以‘连接’‘上传’和‘下载’,但只针对没有加密的FTP服务器。
假设ftp服务器(serverU)设置了MD5加密,也就是one-time password(一次性密码),那么每次登录的密码都会随之而改变。
所以我的代码针对密码字符串必须有个加密的过程,该如何加密呢?

在连接FTP的时候返回:
[R] 331 Response to otp-md5 999 srt26ddb14a required for skey.
查看了一点资料,听说是要根据‘999’(frequently)和‘srt26ddb14a’(seed)这两个随机字符串进行组合和md5加密。

flashfxp、Cuteftp等下载软件是支持one-time password的。算法究竟是如何的呢?
有没有相对应的处理函数?
请问该如何解决?
...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
javaxi 2010-02-04
  • 打赏
  • 举报
回复
有办法吗?
javaxi 2010-01-20
  • 打赏
  • 举报
回复
通过抓包工具可以取得CuteFTP将其密码加密后的字符串
12 IP-192.168.1.102 IP-192.168.1.101 126 0.000766 FTP Ctl R PORT=16133 331 Response to otp-md5 998 bind727 required for skey.
13 IP-192.168.1.101 IP-192.168.1.102 104 0.001165 FTP Ctl C PORT=16133 PASS SLIM BELL MEN BAM THUG GIVE TCP Invalid Checksum

82 IP-192.168.1.102 IP-192.168.1.101 126 0.000743 FTP Ctl R PORT=16179 331 Response to otp-md5 997 bind727 required for skey.
83 IP-192.168.1.101 IP-192.168.1.102 104 0.001067 FTP Ctl C PORT=16179 PASS LAST HAAS LAND LOSE OWN FAN TCP Invalid Checksum

136 IP-192.168.1.102 IP-192.168.1.101 126 0.000756 FTP Ctl R PORT=16207 331 Response to otp-md5 996 bind727 required for skey.
137 IP-192.168.1.101 IP-192.168.1.102 104 0.001070 FTP Ctl C PORT=16207 PASS RUN JUTE CHEN GOAL HOWL JOT TCP Invalid Checksum

244 IP-192.168.1.102 IP-192.168.1.101 126 0.000742 FTP Ctl R PORT=16240 331 Response to otp-md5 994 bind727 required for skey.
245 IP-192.168.1.101 IP-192.168.1.102 106 0.001077 FTP Ctl C PORT=16240 PASS KYLE MINT LAYS BUNT LUST JOVE TCP Invalid Checksum

314 IP-192.168.1.102 IP-192.168.1.101 126 0.000741 FTP Ctl R PORT=16304 331 Response to otp-md5 999 duke471 required for skey.
315 IP-192.168.1.101 IP-192.168.1.102 105 0.001806 FTP Ctl C PORT=16304 PASS KEG MIKE MINK DIME EYED LACK TCP Invalid Checksum

12 IP-192.168.1.102 IP-192.168.1.101 126 0.000745 FTP Ctl R PORT=16515 331 Response to otp-md5 998 duke471 required for skey.
13 IP-192.168.1.101 IP-192.168.1.102 105 0.001307 FTP Ctl C PORT=16515 PASS BUNK DANG DEEM BEN BERN CAST TCP Invalid Checksum

对应表为:

参数:998 bind727
密码:SLIM BELL MEN BAM THUG GIVE

参数:997 bind727
密码:LAST HAAS LAND LOSE OWN FAN

参数:996 bind727
密码:RUN JUTE CHEN GOAL HOWL JO

......

如此类推,总结:加密后的字符串应该由6个字符串组成,每个字符串的长度为三位或者四位。

那究竟系统是如何加密的呢?
javaxi 2010-01-19
  • 打赏
  • 举报
回复
OTP

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧