当前位置:首页 » 编程语言 » java模拟登陆

java模拟登陆

发布时间: 2022-02-25 07:22:50

java模拟支付宝登录,怎么弄

1.思路

模拟支付宝登陆系统,输入用户名和密码,当用户名和密码均正确的时候
提示:登陆成功,否则提示用户名密码错误,重新输入,当输入错误5次以后
,账号锁定,提示输入错误5次,账号已经被封锁,请联系管理员!

2.案例

Ⅱ java编写一个程序模拟用户登录操作,用户名和密码从键盘输入

import java.util.Scanner;

public class LoginTest {
/**
* @param args
*/
public static void main(String[] args) {
String loginName = "admin";
String passWord = "123456";
Scanner sc = new Scanner(System.in);
boolean isSuccess = false;
int index = 0;
while(!isSuccess){
System.out.println("请输入用户名:");
String name = sc.nextLine(); //读取字符串型输入
System.out.println("请输入密码:");
String passW = sc.nextLine();
if(loginName.equals(name)&&passWord.equals(passW)){
System.out.println("户名密码正确,退出程序");
isSuccess = true;
}else{
if(++index>=3){
System.out.println("用户名密码错误,程序即将退出");
return;
}else{
System.out.println("用户名密码错误,请重新输入");
}

}
}

}

}

Ⅲ java 模拟post登录

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

post页面:
http://www.songtaste.com/info_oper.php?tag=signin&pageref=

post参数就4个而已,
name=yourName&pwd=yourPassword&B12=Login&mpc=分析得到的mpc

看如下例子:
http://..com/question/141336096.html
将这个例子中的如下语句改一下就能收到数据的
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="http://www.songtaste.com";
private static String loginURL=baseURL+"/signin.php";
private static String actionURL=baseURL+"/info_oper.php?tag=signin&pageref=";
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=%s&pwd=%s&B12=Login&mpc=%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.array(b, 0, tb, 0, b.length);
System.array(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.array(b, 0, tb, 0, b.length);
System.array(t, 0, tb, b.length, r);
return tb;
}
}
}

Ⅳ java模拟登录页面

database.url=jdbc:mysql://127.0.0.1:3306/irs?user=root&password=123
sso.service=http://127.0.0.1:8080/irs/sso.do
sso.cas=http://127.0.0.1:8080/SSO
sso.cas.enabled=1

server.city.code=101010100
他们说的那个sessionid可能是鉴权用的,登录请求系统的时候把sessionid带过去就行了

Ⅳ JAVA超简单的模拟登陆

public static void main(String[] args){
int i=0;
for(;i<3;i++){
Scanner scan=new Scanner(System.in);
System.out.println("请输入用户名:");
String Cuser=scan.nextLine();

System.out.println("请输入密码:");
String Cpwd=scan.nextLine();
if(!Cuser.equals("abc")){
if(i+1==3)
System.out.println("失败3次");
else
System.out.println("用户名非法!【第"+(i+1)+"次登录】");
}
else if(!Cpwd.equals("abc")){
if(i+1==3)
System.out.println("失败3次");
else
System.out.println("登录密码错误!【第"+(i+1)+"次登录】");
}
else
{
System.out.println("恭喜您,登录信息通过验证!");
}

}
}

Ⅵ 如何用java模拟网页登入提交

我不得不使用好几个系统,都是B/S结构的,每次登录都需要输入用户名和密码,觉得非常麻烦,考虑到其他同事也会有这样的需求,不妨就写个自动登录的程序吧。之前,也考虑过使用单点登录,几经尝试之后还是放弃了。

我习惯使用Java,本能地开始寻找Java的解决方法,在Google中输入“Java自动登录”、“Java网页模拟登录”、“Java Post 登录”,结果倒是不少,内容也差不多,我尝试很多次终究也没有达到我预期的目标。后来,我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行。但这些代码确实管用。

我们先分析一下代码,
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>

String surl = "http://192.168.0.1:8888/oa/login.jsp";
URL url = new URL(surl);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
String str = "username=yourname&password=123456";
out.write(str);
out.flush();
out.close();
到这里,如果在C/S结构中,且参数正确,程序能够成功登录到这个oa系统,要看到结果,你可以通过下面的代码将系统服务器返回的结果System.out.println()出来。

String sling = "";
String scontent = "";
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
while ((sling = in.readLine()) != null)
scontent += in + "\r\n";
System.out.println(scontent);

在C/S结构下,可以到得到控制台输出了返回值,从返回内容里可以看出程序已经成功登录,但要是把这个网址浏览器打开,还是得重新登录,问题没有得到根本解决。如果只是恶意注册,到这里应该就达到目的了。

看样子C/S结构下不容易实现网页程序自动登录,除非你在C/S程序中内嵌一个浏览器,直接在这个浏览器中自动访问系统,应该没有别的方法,主要问题在于我们没有办法共享Session。

为了便于共享Session,我们只能在浏览器中实现网页自动登录,通过上面的代码在jsp页面中测试,达不到预期目标。

网页自动登录,就是希望程序自动填充用户名和密码,然后以Post方式提交给登录页面的Form所指向的action页面或方法。我将系统的登录页面的源代码保存成一个网页,然后在username和password文本框中设置默认值,然后通过这网页登录系统,测试后,发现可行。接下来,你可能已经想到了解决方法。

我们可以通过url.openConnection()建立连接,将返回的scontent打印出来,然后接着打印以下代码:
out.println("<script type="text/javascript">\r\n");
out.println("document.getElementsByName("username")[0].value=yourname;\r\n");
out.println("document.getElementsByName("password")[0].value=123456;\r\n");
out.println("document.forms[0].submit();\r\n");
out.println("</script>\r\n");
原理很简单,通过login.jsp将登录页面的全部源代码写在当前页面,然后使用javascript脚本将用户名和密码的值填充上,最后提交表单。这样中,终于实现了自动登录的目标。现在我通过一个特殊的网址,例如http://192.168.0.1/login.jsp?url=,就可以自动访问这个oa了。
你可能注意到参数url,他的值是经过加密的,内容是用户名和密码。当然,你也可以加上有效期,即在有效期内这个链接才是有效的,才可以实现自动登录。

Ⅶ java模拟登陆,求取用户名和密码,给三次机会,并提示还有几次

import java.util.Scanner;

public class Logon {

private static final char username = '青';
private static final int password = 123;
private static final Scanner san = new Scanner(System.in);

public static void main(String[] args) {
char iname;
int ipass;
System.out.print("请输入用户名: ");
iname = san.next().charAt(0);
System.out.print("请输入密码: ");
ipass = san.nextInt();
if(Logon.username == iname && Logon.password == ipass) {
System.out.println("欢迎你, " + Logon.username);
} else {
System.out.println("对不起, 你不是" + Logon.username);
}
}

}

Ⅷ java 模拟登陆成功后,怎么把session传递到下个页面。

在登陆页面,把要保存的数据先放到session里面,session.setAttribute("这里写给你要存的对象取的名字",存的对象),登陆成功后,就可以通过session.getAttribute(你取的名字)取对象了获取数据了。session是内置对象,不需要传递,直接可以用。

Ⅸ java作业:模拟用户登录验证,如果输入用户名为admin,密码为1,提示输入正确,否则继续提示输入

packagecom.java.test;

importjava.util.Scanner;

publicclassMainTest{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

System.out.println("请输入用户名:");
Stringusername=sc.nextLine();
System.out.println("请输入密码:");
Stringpassword=sc.nextLine();
booleanlimit=true;
intcount=0;
while(limit){
if("admin".equals(username)&&"1".equals(password)){
System.out.println("密码正确!");
limit=false;
}elseif(3==count){
System.out.println("密码错误次数超过限制,程序退出");
limit=false;
//return;
}else{
System.out.println("密码错误,请重新输入:");
password=sc.nextLine();
count++;
}
}

}

}

Ⅹ java模拟登陆(突破了验证码)怎么拿验证码跟用户名、密码一起post登陆网站

没有通用方法,网站稍微做点手脚你原来的方法就失效了。
===========================补充=======================
不是说安全设置问题,只要它把登录网站页面中的表单元素名字一改,你所有工作就白费了啊。对方很容易做的。你又得重头来。
你非要试一下,有2种方法,一是直接在提交url后附加表单各元素,不过服务器可能要检查,不一定行。
第二你自己做个假页面,与提交表单内容一致,你用js自己填元素值,自动提交。

热点内容
电脑怎么看网络密码 发布:2025-01-10 14:56:40 浏览:108
java调用shell脚本参数 发布:2025-01-10 14:43:51 浏览:52
php数组计数 发布:2025-01-10 14:23:03 浏览:474
s盒算法 发布:2025-01-10 14:16:42 浏览:643
c语言用二分法求方程 发布:2025-01-10 14:15:45 浏览:220
广场舞加密 发布:2025-01-10 14:13:21 浏览:520
网络密码显示低安全性是什么意思 发布:2025-01-10 14:11:49 浏览:782
耻辱2博士保险箱密码是多少 发布:2025-01-10 14:11:41 浏览:101
如何把服务器搭在自己电脑 发布:2025-01-10 14:10:57 浏览:585
水晶可以存储 发布:2025-01-10 14:09:35 浏览:391