「java假登录」JAVA登录系统

博主:adminadmin 2023-01-08 18:57:12 857

本篇文章给大家谈谈java假登录,以及JAVA登录系统对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用java实现登陆网站--不需打开浏览器

public static void loginBaidu() {

URL url = null;

HttpURLConnection httpurlconnection = null;

try {

url = new URL("");

httpurlconnection = (HttpURLConnection) url.openConnection();

httpurlconnection.setRequestProperty("User-Agent",

"Internet Explorer");

httpurlconnection.setRequestProperty("Host", "");

httpurlconnection.connect();

String cookie0 = httpurlconnection.getHeaderField("Set-Cookie");

System.out.println(cookie0);//打印出cookie

httpurlconnection.disconnect();

// String cookie0 =

// "BAIDUID=8AF5EA24DBF1275CE15C02B5FF65A265:FG=1;BDSTAT=61a1d3a7118ce8a7ce1b9d16fdfaaf51f3deb48f8e5494eef01f3a292cf5b899;

// BDUSE=deleted";

url = new URL("");

String strPost = "username=xxxxxxpassword=yyyyyyymem_pass=on";

httpurlconnection = (HttpURLConnection) url.openConnection();

httpurlconnection.setFollowRedirects(true);

httpurlconnection.setInstanceFollowRedirects(true);

httpurlconnection.setDoOutput(true); // 需要向服务器写数据

httpurlconnection.setDoInput(true); //

httpurlconnection.setUseCaches(false); // 获得服务器最新的信息

httpurlconnection.setAllowUserInteraction(false);

httpurlconnection.setRequestMethod("POST");

httpurlconnection

.addRequestProperty(

"Accept",

"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, */*");

httpurlconnection

.setRequestProperty("Referer",

";tpl=mnu=http%3A//");

httpurlconnection.setRequestProperty("Accept-Language", "zh-cn");

httpurlconnection.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

httpurlconnection.setRequestProperty("Accept-Encoding",

"gzip, deflate");

httpurlconnection

.setRequestProperty(

"User-Agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; .NET CLR 2.0.50727;MEGAUPLOAD 1.0)");

httpurlconnection.setRequestProperty("Host", "passport.baidu.com");

httpurlconnection.setRequestProperty("Content-Length", strPost

.length()

+ "");

httpurlconnection.setRequestProperty("Connection", "Keep-Alive");

httpurlconnection.setRequestProperty("Cache-Control", "no-cache");

httpurlconnection.setRequestProperty("Cookie", cookie0);

httpurlconnection.getOutputStream().write(strPost.getBytes());

httpurlconnection.getOutputStream().flush();

httpurlconnection.getOutputStream().close();

httpurlconnection.connect();

int code = httpurlconnection.getResponseCode();

System.out.println("code " + code);

String cookie1 = httpurlconnection.getHeaderField("Set-Cookie");

System.out.print(cookie0 + "; " + cookie1);

httpurlconnection.disconnect();

url = new URL("");

httpurlconnection = (HttpURLConnection) url.openConnection();

httpurlconnection.setRequestProperty("User-Agent",

"Internet Explorer");

httpurlconnection.setRequestProperty("Host", "");

httpurlconnection.setRequestProperty("Cookie", cookie0 + "; "

+ cookie1);

httpurlconnection.connect();

InputStream urlStream = httpurlconnection.getInputStream();

BufferedInputStream buff = new BufferedInputStream(urlStream);

Reader r = new InputStreamReader(buff, "gbk");

BufferedReader br = new BufferedReader(r);

StringBuffer strHtml = new StringBuffer("");

String strLine = null;

while ((strLine = br.readLine()) != null) {

strHtml.append(strLine + "\r\n");

}

System.out.print(strHtml.toString());

} catch (Exception e) {

e.printStackTrace();

} finally {

if (httpurlconnection != null)

httpurlconnection.disconnect();

}

}

呵呵,改了下程序中错误的地方。学习了,原来这样也可以。

以前只知道可以这样做,还从来没有花过心思去做过。

阅读了些代码,真是获益匪浅啊。

程序可以运行了,用户名和密码改为你的帐户就可以直接运行了。可以使用,但不能一直使用啊,如果用多了百度给你个验证码,就是神仙也不行了。

java 模拟post登录

这个要分两步,先用GET方法取得页面源码,分析出mpc的值,然后用POST方法发送数据就能登录了。当然一切工作之前要设置好CookieHandler

post页面:

;pageref=

post参数就4个而已,

name=yourNamepwd=yourPasswordB12=Loginmpc=分析得到的mpc

看如下例子:

将这个例子中的如下语句改一下就能收到数据的

connection.getInputStream().close();

//

import java.io.BufferedInputStream;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.net.CookieHandler;

import java.net.CookieManager;

import java.net.CookiePolicy;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class SongTaste {

private static String baseURL="";

private static String loginURL=baseURL+"/signin.php";

private static String actionURL=baseURL+"/info_oper.php?tag=signinpageref=";

private static String musicURL=baseURL+"/music/";

private static CookieManager cm;

static{

cm=new CookieManager();

cm.setCookiePolicy(CookiePolicy.ACCEPT_ALL);

CookieHandler.setDefault(cm);

}

public static void main(String[] args) throws Exception{

// HttpURLConnection.setFollowRedirects(true);

login("abcmusic","000000");

listContents();

}

private static void listContents() throws Exception {

byte[] dat=new HttpGet(musicURL).data;

String src=new String(dat,"gbk");

Matcher m=Pattern.compile("MSL\\(.*?\\)").matcher(src);

while(m.find())

System.out.println(m.group());

}

private static void login(String name,String pwd){

byte[] dat=new HttpGet(loginURL).data;

String src=new String(dat);

Matcher m=Pattern.compile("name=mpc.*?").matcher(src);

String mpc="";

if(m.find()){

mpc=m.group();

// System.out.println(mpc);

mpc=mpc.substring(15,mpc.length()-1);

// System.out.println(mpc);

}

//do login

new HttpPost(actionURL,String.format("name=%spwd=%sB12=Loginmpc=%s",name,pwd,mpc));

}

private static class HttpGet extends Thread{

private static final int bufferSize=1024;

private String ustr;

private byte[] data;

private HttpGet(String u,String...ref){

ustr=u;

start();

try {join();} catch (Exception e) {}

}

public void run(){

try{

URL u = new URL(ustr);

HttpURLConnection uc=(HttpURLConnection)u.openConnection();

byte[] b={};

byte[] t=new byte[bufferSize];

int r;

BufferedInputStream bin=new BufferedInputStream(uc.getInputStream());

while((r=bin.read(t))-1){

b=putData(b,t,r);

}

bin.close();

uc.disconnect();

data=b;

}catch(Exception e){}

}

private final byte[] putData(byte[] b, byte[] t, int r) {

byte[] tb=new byte[b.length+r];

System.arraycopy(b, 0, tb, 0, b.length);

System.arraycopy(t, 0, tb, b.length, r);

return tb;

}

}

private static class HttpPost extends Thread{

private static int blen=1024;

private static String contentType="application/x-www-form-urlencoded";

private String url,pms;

private byte[] dat={};

private HttpPost(String u,String p){

url=u;

pms=p;

start();

try{join();}catch(Exception e){}

}

public void run(){

try{

URL u = new URL(url);

HttpURLConnection connection=(HttpURLConnection)u.openConnection();

connection.setRequestMethod("POST");

connection.setRequestProperty("Content-Type",contentType);

connection.setRequestProperty("Content-Length",String.valueOf(pms.length()));

connection.setUseCaches(false);

connection.setDoOutput(true);

connection.setDoInput(true);

DataOutputStream dout=new DataOutputStream(connection.getOutputStream());

dout.write(pms.getBytes());

dout.flush();

dout.close();

InputStream in=connection.getInputStream();

BufferedInputStream bin=new BufferedInputStream(in);

byte[] buff=new byte[blen],bs={};

int r;

while((r=bin.read(buff))-1){

bs=putData(bs,buff,r);

}

bin.close();

connection.disconnect();

dat=bs;

}catch(Exception e){}

}

private final byte[] putData(byte[] b, byte[] t, int r) {

byte[] tb=new byte[b.length+r];

System.arraycopy(b, 0, tb, 0, b.length);

System.arraycopy(t, 0, tb, b.length, r);

return tb;

}

}

}

java怎样实现登录验证

1.打开编程工具:

打开java编程的界面,采用的是eclipse软件;

2

2.建立一个java工程:

简洁操作如下:单击“file”-“new”-“java project”;

然后,在工程菜单中选中工程,单击鼠标右键出出来菜单,依次选中“new”-“class”;

具体查看“ eclipse如何建立一个java工程”;

0eclipse如何建立一个java工程

END

2.代码实现步骤

1.建立输入扫描:

采用java中的Scanner类实现输入数据的获取,具体代码如下;

Scanner scan = new Scanner(System.in);

2.接收用户名:

建立一个提示信息,提示输入用户名,并储存输入的用户名,代码如下:

System.out.println("请输入登陆用户名:");

String usename=scan.nextLine();

3.接收密码:

建立一个提示信息,提示输入密码,并存储输入的密码,代码如下:

System.out.println("请输入登陆的密码:");

String password=scan.nextLine();

4.验证信息:

采用if else语句来实现对用户名和密码的验证,并打印提示信息,代码如下:

if(!usename.equals("me")){

System.out.println("用户名非法。");

}else if(!password.equals("123456")){

System.out.println("登陆密码错误。");

}else{

System.out.println("恭喜您,登陆信息通过验证。");

}

请教java尝试模拟登录12306时遇到的一个问题

首先12306网站前缀为“https://” 表明是用SSL加密。

用HttpClient去模拟发送请求时,对于URL用为“https”时,先要解决证书问题,有两种解决方案:

在查找相关资料时,对于这种方法有点麻烦,最后就没有去尝试,有兴趣的朋友可以试试

扩展HttpClient 类实现自动接受证书,因为这种方法自动接收所有证书,因此存在一定的安全问题,所以在使用这种方法前请仔细考虑您的系统的安全需求。

具体的步骤如下:

•提供一个自定义的socket factory (test.MySecureProtocolSocketFactory )。这个自定义的类必须实现接口

org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory ,在实现接口的类中调用自定义的

X509TrustManager(test.MyX509TrustManager)

•创建一个org.apache.commons.httpclient.protocol.Protocol 的实例,指定协议名称和默认的端口号

Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory (), 443);

•注册刚才创建的https 协议对象

Protocol.registerProtocol("https ", myhttps);

具体代码如下:

1 package org.study.meteor.ticket.util;

2

3 import java.io.IOException;

4 import java.net.InetAddress;

5 import java.net.InetSocketAddress;

6 import java.net.Socket;

7 import java.net.SocketAddress;

8 import java.net.UnknownHostException;

9 import java.security.KeyManagementException;

10 import java.security.NoSuchAlgorithmException;

11 import java.security.cert.CertificateException;

12 import java.security.cert.X509Certificate;

13

14 import javax.net.SocketFactory;

15 import javax.net.ssl.SSLContext;

16 import javax.net.ssl.TrustManager;

17 import javax.net.ssl.X509TrustManager;

18

19 import org.apache.commons.httpclient.ConnectTimeoutException;

20 import org.apache.commons.httpclient.params.HttpConnectionParams;

21 import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;

22

23 /**

24 * MySecureProtocolSocketFactory.java.java Create on 2012-9-26下午1:15:03

25 *

26 *

27 * Copyright (c) 2012 by MTA.

28 *

29 * @author lmeteor

30 * @Email txin0814@sina.com

31 * @description 自定义的socket factory 实现自动接受证书

32 * @version 1.0

33 */

34 public class MySecureProtocolSocketFactory implements

35 SecureProtocolSocketFactory

36 {

37

38 private SSLContext sslcontext = null;

39

40 private SSLContext createSSLContext()

41 {

42 SSLContext sslcontext = null;

43 try

44 {

45 sslcontext = SSLContext.getInstance("SSL");

46 sslcontext.init(null, new TrustManager[]

47 { new TrustAnyTrustManager() }, new java.security.SecureRandom());

48 }

49 catch (NoSuchAlgorithmException e)

50 {

51 e.printStackTrace();

52 }

53 catch (KeyManagementException e)

54 {

55 e.printStackTrace();

56 }

57 return sslcontext;

58 }

59

60 private SSLContext getSSLContext()

61 {

62 if (this.sslcontext == null)

63 {

64 this.sslcontext = createSSLContext();

65 }

66 return this.sslcontext;

67 }

68

69 public Socket createSocket(Socket socket, String host, int port,

70 boolean autoClose) throws IOException, UnknownHostException

71 {

72 return getSSLContext().getSocketFactory().createSocket(socket, host,

73 port, autoClose);

74 }

75

76 public Socket createSocket(String host, int port) throws IOException,

77 UnknownHostException

78 {

79 return getSSLContext().getSocketFactory().createSocket(host, port);

80 }

81

82 public Socket createSocket(String host, int port, InetAddress clientHost,

83 int clientPort) throws IOException, UnknownHostException

84 {

85 return getSSLContext().getSocketFactory().createSocket(host, port,

86 clientHost, clientPort);

87 }

88

89 public Socket createSocket(String host, int port, InetAddress localAddress,

90 int localPort, HttpConnectionParams params) throws IOException,

91 UnknownHostException, ConnectTimeoutException

92 {

93 if (params == null)

94 {

95 throw new IllegalArgumentException("Parameters may not be null");

96 }

97 int timeout = params.getConnectionTimeout();

98 SocketFactory socketfactory = getSSLContext().getSocketFactory();

99 if (timeout == 0)

100 {

101 return socketfactory.createSocket(host, port, localAddress,

102 localPort);

103 }

104 else

105 {

106 Socket socket = socketfactory.createSocket();

107 SocketAddress localaddr = new InetSocketAddress(localAddress,

108 localPort);

109 SocketAddress remoteaddr = new InetSocketAddress(host, port);

110 socket.bind(localaddr);

111 socket.connect(remoteaddr, timeout);

112 return socket;

113 }

114 }

115

116 // 自定义私有类

117 private static class TrustAnyTrustManager implements X509TrustManager

118 {

119

120 public void checkClientTrusted(X509Certificate[] chain, String authType)

121 throws CertificateException

122 {

123 }

124

125 public void checkServerTrusted(X509Certificate[] chain, String authType)

126 throws CertificateException

127 {

128 }

129

130 public X509Certificate[] getAcceptedIssuers()

131 {

132 return new X509Certificate[]

133 {};

134 }

135 }

136 }

如何用Java实现用户登录安全问题

第一个问题,由于BS结构的特点是基于请求和应答的,换句话说,服务器处于被动位置,客户浏览器处于主动为止,如果你不主动发出请求,服务器是不会鸟你的,或者说,服务器根本就不知道你是谁!

要想实现你的需求,可以在JSP页面放置一个定时器,用JavaScript搞,通过Ajax异步请求服务器,做登录状态轮询,如果发现在别的地方登录了,强制下线。

这样的话,就需要一个状态保存的容器,这个自己去搞吧,实现方案很多的。

第2个问题就更简单了,登录失败时,修改计数器的值,例如设置为错误3次就锁定,那么没错误一次就减1,到0就不让登了呗,然后启动一个解锁定时器线程,在设定的时间后将这个值修改成3

这些参数都是可以人为设定的

关于java假登录和JAVA登录系统的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。