代码已经可以‘连接’‘上传’和‘下载’,但只针对没有加密的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的。算法究竟是如何的呢?
有没有相对应的处理函数?
请问该如何解决?

解决方案 »

  1.   

    通过抓包工具可以取得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 Checksum82 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 Checksum136 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 Checksum244 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 Checksum314 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 Checksum12 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个字符串组成,每个字符串的长度为三位或者四位。那究竟系统是如何加密的呢?