100分 求js写的自动登陆帐号密码保存功能~源码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100分 求js写的自动登陆帐号密码保存功能~源码相关的知识,希望对你有一定的参考价值。

/**
* 操作Cookie 添加
* @param name
* @param value
* @return
*/
function SetCookie(name,value,days)//两个参数,一个是cookie的名子,一个是值

var Days = 30;
if(typeof(days)=="undefined"||isNaN(days))
Days=parseInt(days.toString());
//此 cookie 将被保存 30 天 -1为浏览器关闭  
if(Days!=-1)
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
else
document.cookie = name + "="+ escape (value) + ";expires=-1";



/**
* 操作Cookie 提取 后台必须是escape编码
* @param name
* @return
*/
function getCookie(name)//取cookies函数

var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;

/**
* 操作Cookie 删除
* @param name
* @return
*/
function delCookie(name)//删除cookie

var exp = new Date();
exp.setTime(exp.getTime() - (86400 * 1000 * 1));
var cval=getCookie(name);
if(cval!=null)
document.cookie = name + "="+ escape (cval) + ";expires="+exp.toGMTString();


/**
* 根据ID获取对象
* @param objName
* @return
*/
function GetObj(objName)
if(typeof(objName)=="undefined")
return null;
if(document.getElementById)
return eval('document.getElementById("'+objName+'")');
else
return eval('document.all.'+objName);


/**
* 给String 添加trim方法
*/
String.prototype.trim=function()
return this.replace(/(^\s*)|(\s*$)/g, "");

/**
* 给String添加isNullOrempty的方法
*/
String.prototype.isnullorempty=function()
if(this==null||typeof(this)=="undefined"||this.trim()=="")
return true;
return false;



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login.html</title>
<script type="text/javascript" src="jsTool.js"></script>
<script type="text/javascript">
var cookieName_username="LOGIN_USER_NAME_TEST";
var cookieName_password="LOGIN_PASSWORD_TEST";
var cookieName_autologin="LOGIN_AUTO_TEST";

//得到Cookie信息
function getUserInfoByCookie()
var uname=getCookie(cookieName_username);
if(uname!=null&&!uname.toString().isnullorempty())
GetObj('ttuserName').value=uname;
GetObj('ck_saveuser').checked=true;


var upass=getCookie(cookieName_password)
if(upass!=null&&!upass.toString().isnullorempty())
GetObj('ttpassword').value=upass;
GetObj('ck_savepass').checked=true;


var autologin=getCookie(cookieName_autologin)
if(autologin!=null&&!autologin.toString().isnullorempty())
if(autologin.toString().trim()=="true")
GetObj('ck_autologin').checked=true;
login();//登录


/**
*登录(保存信息)
*/
function login()
var tusername=GetObj('ttuserName');
if(tusername.value.trim().isnullorempty())
alert('您尚未输入用户名!请输入!');
tpassword.focus();
return;

var tpassword=GetObj('ttpassword');
if(tpassword.value.trim().isnullorempty())
alert('您尚未输入密码!请输入!');
tpassword.focus();
return;

delCookie(cookieName_username);//删除用户名Cookie
var tsaveuser=GetObj('ck_saveuser');
if(tsaveuser.checked)
SetCookie(cookieName_username,tusername.value.trim(),7);//保存到Cookie中 保存7天
delCookie(cookieName_password);//删除密码
var tsavepass=GetObj('ck_savepass');
if(tsavepass.checked)
SetCookie(cookieName_password,tpassword.value.trim(),7);
var autologin=GetObj('ck_autologin');
SetCookie(cookieName_autologin,autologin.checked,7);
alert('登录成功!');


</script>
</head>
<body onload="getUserInfoByCookie()">
用户名:<input type="text" value="" name="ttuserName" id="ttuserName" maxlength="16"/>
密码:<input type="password" value="" name="ttpassword" id="ttpassword" maxlength="16"/>
<input type="checkbox" name="ck_saveuser" id="ck_saveuser"/>保存用户名
<input type="checkbox" name="ck_savepass" id="ck_savepass"/>保存密码
<input type="checkbox" name="ck_autologin" id="ck_autologin"/>自动登录
<input type="button" value="登录(保存)" onclick="login()"/>
</body>
</html>
能不能审批呀
参考技术A 你是指在登录成功一次后,在下次登录的页面上,自动把账号和密码填进去吗?
以下代码不涉及服务器的反应,只是简单地在登录时记录用户名和密码:
<html>
<head><title>登录网页</title></head>
<body>
<form action="login.php" method="get" onsubmit="savePassword()">
用户名<input type="text" id="user" value="" />
密码<input type="password" id="pwd" value="" />
<input type="submit" value="登录" />
</form>
</body>
</html>
<script language="javascript">
function setCookie(name,value,expires,path,domain,secure)

var expSecs = expires*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime()+expSecs);
var expString = ((expires=="-1") ? "" : (";expires="+expDate.toGMTString()))
var pathString = ((path==null) ? "" : (";path="+path))
var domainString = ((domain==null) ? "" : (";domain="+domain))
var secureString = ((secure==true) ? ";secure" : "" )
document.cookie = name + "=" + encodeURI(value) + expString + pathString + domainString + secureString;//encodeURI escape


function getCookie(name)

var result = null;
var myCookie = document.cookie + ";";
var searchName = name + "=";
var startOfCookie = myCookie.indexOf(searchName);
var endOfCookie;
if (startOfCookie != -1)

startOfCookie += searchName.length;
endOfCookie = myCookie.indexOf(";",startOfCookie);//分隔符;
if (endOfCookie==-1)

endOfCookie = mycookie.indexOf("&",startOfCookie);//分隔符&

result = decodeURI(myCookie.substring(startOfCookie, endOfCookie));//unescape decodeURI

if (result==null) result="";
return result;


window.onload=function()
var user=getCookie("user");
if(user)document.getElementById("user").value=user;
var pwd=getCookie("pwd");
if(pwd)document.getElementById("pwd").value=pwd;


function savePassword()

var user=document.getElementById("user").value;
var pwd= document.getElementById("pwd").value;

setCookie("user", user, 24*60*60*7);//一周后失效
setCookie("pwd", pwd, 24*60*60*7);

return true;

</script>
</html>追问

看不懂呀

追答

就是在第一次登录提交时把相关信息写入Cookie,以后每次登录时把这个信息读出来,显示在相应的框中。

参考技术B 一:jS判断记住密码复选框是否选中,true时,当前账号和密码写入cookie中保存;下次访问登录页面时在cookie中取值并赋值到文本上。(要自己再次点击登录按钮)
二:jS判断记住登录状态复选框是否选中,true时,当前账号和密码写入cookie中保存;下次访问登录页面时在加载页面时判断cookie中的登录状态为true时,默认触发登录的点击事件。(不需要自己再次点击登录按钮)
参考技术C 能说的具体点吗?保存到cookie里?下回进入自动登陆?追问

嗯 对

追答

出去了一段时间,这个应该是你想要的结果,我试了,可以取到。
当你要用的话,得解析cookie的内容。

New Document

如何手动触发谷歌浏览器自动填充密码

谷歌浏览器自带了一个密码管理器功能,这个功能应该大家或多或少都应该有听说过或者使用过这个功能。

这个功能主要的内容就是,当用户在网页上输入了用户名,密码登陆或者修改密码表单提交时会触发自动保存密码这个功能。如果用户所使用的电脑不是公共电脑,就可以保存此密码。

在登陆页面表单中,谷歌浏览器会拉出自动表单,可以对页面自动填充,方便快速登陆。

可是,在有些情况下,并不想触发这个功能。主要有这两种:

1. 网站开发者不希望页面触发自动密码保存功能,可能的原因是认为自动保存密码不安全,网站提供了短信验证码等更安全的登陆方式。

2. 用户不想触发密码自动填充功能,因为有些页面被填充的实际上并不是用户名密码的表单。

目前的现状:

谷歌浏览器的开发者认为,密码管理器功能能够更方便的让用户在不同网站设置不同的密码,让浏览器来完成记住这个功能,而不需要用户主动记住这些密码,而用户的电脑一般是安全的。

网站开发者可能倾向于的观点:万一用户电脑中了病毒或者在电脑上打开了不明软件,软件是可以直接读取谷歌浏览器的密码的,所以不安全,希望禁用掉自动表单填充功能。

可能的安全隐患:

如果不让浏览器来记住密码,那么用户就需要自己来记住或者管理不同网站的密码,那么在设置密码的时候便会倾向于设置成相同或者相近的密码。在这种情况下,一旦一个网站的密码泄漏,或者这个网站的一个有恶意的维护人员获得了你的密码,就可以用同样的账号密码去试不同网站,那么你的账号信息就会泄漏。如果让浏览器记住密码,那么用户在不同网站设置的密码就可以完全不一样,甚至谷歌浏览器直接提供了右击-生成随机密码,这种选项,让密码管理器来管理密码。这种情况下,即使用户在一个网站上的密码泄漏了,在其它网站上的账户也能保证安全。

如果让浏览器来记住密码,可能的潜在风险是这样的。很大一部分用户不会对谷歌浏览器的密码管理器设置专有的密码,在这种情况下,一些软件运行之后,无需任何额外权限,就可以直接读取谷歌浏览器的密码。(想了解如何读取密码的,可以看这篇文章:渗透技巧-导出Chrome浏览器中保存的密码),那么所有浏览器管理的密码就会泄漏,给用户造成的影响核能比不记住密码大的多。

如何权衡:

如果你需要登陆的网站很多,你个人又比较注重安全这方面只是,能保证个人电脑安全的,推荐使用密码管理器保存一些相对不常用网站的密码,如果不放心,可以对密码管理器设置一个专有密码进行加密,来保证密码管理器本身的安全。

如果你需要登陆的网站不多,你个人相对不注重个人电脑安全的,或者个人电脑常常需要运行不明来源软件的,推荐不要使用密码管理器来保存密码。

讲了这么多,好像都在普及谷歌浏览器的密码管理器这个功能。

———————————————————————————华丽的分割线——————————————————————————————————

其实写这篇文章,个人的主要目的是,如果不想触发谷歌浏览器的密码管理器的相应功能,可能需要做什么。针对两种不想触发的场景,处理方式有不同。

1. 网站开发者不希望页面触发自动密码保存功能

  对于这种情况,个人建议,不要花太多时间来让浏览器不能识别密码。因为官方认为,你这是在欺骗浏览器,所以即使你在当前版本有效的禁用了浏览器的自动密码填充,可能在下个版本就失效了。个人觉得,没必要帮用户决定是否让浏览器来记住密码,把决定权留给用户自己,相信用户都是明智的。

2. 用户不想触发密码自动填充功能

在地址栏输入chrome://flags/#fill-on-account-select把选项设置为enable,重启浏览器,好,完成。

这个处理方式对所有密码自动填充都有效。默认情况下,浏览器的密码填充是自动的,当你打开页面的时候,浏览器认为这个表单是密码表单,就会对该表单实施自动填充。但是,即使浏览器代码写的再牛B,还是会用误判的时候。我个人的网站就遇到两个不是密码表单的,被识别成密码表单,苦恼了好久。这个选项改完之后,当页面加载完后,会弹出密码填充提示,当用户点击选择对应的密码,才会对表单进行填充。

以上是关于100分 求js写的自动登陆帐号密码保存功能~源码的主要内容,如果未能解决你的问题,请参考以下文章

Python语言基础练习题

登陆界面代码

c#添加webBrowser控件,如何实现自动填写打开的网页中的登录帐号,密码,并且自动登陆?

如何读取用户登陆sharepoint时的AD帐号和密码

javascript 如何实现欺骗登陆哇?

网页怎么自动记住密码?