亚洲黄黄黄网站在线观看,亚洲成aⅴ人片久青草影院按摩,日韩亚洲精品福利http://m.tkk7.com/zlsunnan/category/6365.html世界總是反反覆覆錯錯落落地飄去 來不及嘆息 生活不是平平淡淡從從容容的東西 不能放棄zh-cnFri, 02 Mar 2007 03:18:22 GMTFri, 02 Mar 2007 03:18:22 GMT60在線印章http://m.tkk7.com/zlsunnan/archive/2006/08/30/66623.html☆藍色夢想☆☆藍色夢想☆Wed, 30 Aug 2006 03:38:00 GMThttp://m.tkk7.com/zlsunnan/archive/2006/08/30/66623.htmlhttp://m.tkk7.com/zlsunnan/comments/66623.htmlhttp://m.tkk7.com/zlsunnan/archive/2006/08/30/66623.html#Feedback0http://m.tkk7.com/zlsunnan/comments/commentRss/66623.htmlhttp://m.tkk7.com/zlsunnan/services/trackbacks/66623.htmlhttp://caishu.unihan.com.cn/de-webKZ.asp

http://www.makepic.com/
20064917571421224.gif

printpic.gif?

http://flashface.ctapt.de/

http://www.eoool.com

☆藍色夢想☆ 2006-08-30 11:38 發表評論
]]>
java實現FTP功能(源代碼)http://m.tkk7.com/zlsunnan/archive/2006/06/08/51556.html☆藍色夢想☆☆藍色夢想☆Thu, 08 Jun 2006 15:17:00 GMThttp://m.tkk7.com/zlsunnan/archive/2006/06/08/51556.htmlhttp://m.tkk7.com/zlsunnan/comments/51556.htmlhttp://m.tkk7.com/zlsunnan/archive/2006/06/08/51556.html#Feedback0http://m.tkk7.com/zlsunnan/comments/commentRss/51556.htmlhttp://m.tkk7.com/zlsunnan/services/trackbacks/51556.htmljava實現FTP功能(源代碼)

☆藍色夢想☆ 2006-06-08 23:17 發表評論
]]>
仿google判斷用戶密碼強度http://m.tkk7.com/zlsunnan/archive/2006/06/08/51554.html☆藍色夢想☆☆藍色夢想☆Thu, 08 Jun 2006 15:14:00 GMThttp://m.tkk7.com/zlsunnan/archive/2006/06/08/51554.htmlhttp://m.tkk7.com/zlsunnan/comments/51554.htmlhttp://m.tkk7.com/zlsunnan/archive/2006/06/08/51554.html#Feedback0http://m.tkk7.com/zlsunnan/comments/commentRss/51554.htmlhttp://m.tkk7.com/zlsunnan/services/trackbacks/51554.html·[xml,jsp,servlet]仿google判斷用戶密碼強度

先來看客戶端的JS代碼,命名文 ?gvUserReg.js
程序代碼:
//?this?code?powered?by?google
var?agt?=?navigator.userAgent.toLowerCase();
var?is_op?=?(agt.indexOf("opera")?!=?-1);
var?is_ie?=?(agt.indexOf("msie")?!=?-1)?&&?document.all?&&?!is_op;
var?is_ie5?=?(agt.indexOf("msie?5")?!=?-1)?&&?document.all?&&?!is_op;

function?CreateXmlHttpReq(handler)?{
??var?xmlhttp?=?null;
??if?(is_ie)?{
????//?Guaranteed?to?be?ie5?or?ie6
????var?control?=?(is_ie5)???"Microsoft.XMLHTTP"?:?"Msxml2.XMLHTTP";
????try?{
??????xmlhttp?=?new?ActiveXObject(control);
??????xmlhttp.onreadystatechange?=?handler;
????}?catch?(ex)?{
??????//?TODO:?better?help?message
??????alert("You?need?to?enable?active?scripting?and?activeX?controls");??
????}
??}?else?{
????//?Mozilla
????xmlhttp?=?new?XMLHttpRequest();
????xmlhttp.onload?=?handler;
????xmlhttp.onerror?=?handler;
??}
??return?xmlhttp;
}
alert();
//?XMLHttp?send?POST?request
function?XmlHttpPOST(xmlhttp,?url,?data)?{
??try?{
????xmlhttp.open("POST",?url,?true);
????xmlhttp.setRequestHeader("Content-Type",?"application/x-www-form-urlencoded;?charset=UTF-8");
????xmlhttp.send(data);

??}?catch?(ex)?{
????//?do?nothing
??}
}

//?XMLHttp?send?GEt?request
function?XmlHttpGET(xmlhttp,?url)?{
??try?{
????xmlhttp.open("GET",?url,?true);
????xmlhttp.send(null);
??}?catch?(ex)?{
????//?do?nothing
??}
}
?var?myxmlhttp;
??var?isBrowserCompatible;
??var?hidePasswordBar;
??ratingMsgs?=?new?Array(6);
??ratingMsgColors?=?new?Array(6);
??barColors?=?new?Array(6);
??ratingMsgs[0]?=?"未評級";
??ratingMsgs[1]?=?"太短";
??ratingMsgs[2]?=?"弱";
??ratingMsgs[3]?=?"一般";
??ratingMsgs[4]?=?"很好";
??ratingMsgs[5]?=?"極佳";?//If?the?password?server?is?down
??ratingMsgColors[0]?=?"#808080";
??ratingMsgColors[1]?=?"#da5301";
??ratingMsgColors[2]?=?"#ccbe00";
??ratingMsgColors[3]?=?"#1e91ce";
??ratingMsgColors[4]?=?"#0000FF";
??ratingMsgColors[5]?=?"#ff0000";
??barColors[0]?=?"#e0e0e0";
??barColors[1]?=?"#da5301";
??barColors[2]?=?"#f0e54b";
??barColors[3]?=?"#1e91ce";
??barColors[4]?=?"#0000FF";
??barColors[5]?=?"#ff0000";
??hidePasswordBar?=?false;
??function?CreateRateUserPassReq(formKey)?{
????if?(!isBrowserCompatible)?{
??????return;
????}
????var?passwd?=?document.forms[formKey].gvUserPass.value;
var?min_passwd_len?=?6;
????var?passwdKey?=?"passwd";
????if?(passwd.length?<?min_passwd_len)?{
???? DrawBar(1);
????}else{
?? ??//We?need?to?escape?the?password?now?so?it?won't?mess?up?with?length?test
??????passwd?=?escape(passwd);
??????var?params?=?passwdKey?+?"="?+?passwd
??????myxmlhttp?=?CreateXmlHttpReq(RateUserPassXmlHttpHandler);
??????XmlHttpPOST(myxmlhttp,?"/club/rateUserPass.gv",?params);
????}
??}

??function?getElement(name)?{
????if?(document.all)?{
??????return?document.all(name);
????}
????return?document.getElementById(name);
??}

??function?RateUserPassXmlHttpHandler()?{
????//?Can't?check?status?since?safari?doesn't?support?it
????if?(myxmlhttp.readyState?!=4?)?{
??????return;
????}
????rating?=?parseInt(myxmlhttp.responseText);
????DrawBar(rating);
??}

??function?DrawBar(rating)?{
????var?posbar?=?getElement('posBar');
????var?negbar?=?getElement('negBar');
????var?passwdRating?=?getElement('passwdRating');
????var?barLength?=?getElement('passwdBarDiv').width;
????if?(rating?>=?0?&&?rating?<=?5)?{??//We?successfully?got?a?rating
??????posbar.style.width?=?barLength?/?5?*?rating;
??????negbar.style.width?=?barLength?/?5?*?(5?-?rating);
????}?else?{
??????posbar.style.width?=?0;
??????negbar.style.width?=?barLength;
??????rating?=?5;?//?Not?rated?Rating
????}
????posbar.style.background?=?barColors[rating]
????passwdRating.innerHTML?=?"<font?color='"?+?ratingMsgColors[rating]?+
?????????????????????????????"'>"?+?ratingMsgs[rating]?+?"</font>";
??}

表單部分只是列出密碼選框部分
程序代碼:

要引入剛才那個JS文件
<script?language="javascript"?src="gvUserReg.js"></script>
<form?action="userRegPost.jsp"?method="post"??name="Gforms"?onSubmit="return?CheckForm();">
<table?width="100%"??border="0"?cellpadding="0"?cellspacing="0">
????????<tr>
????????<td?width="100"><input?style="width:200?px"?onKeyUp="CreateRateUserPassReq('Gforms')"?name="gvUserPass"?type="password"?id="gvUserPass"?size="30"?maxlength="30"?/>????????????</td>
????????<td?width="10"></td><td>
<TABLE??width="200"?border=0?cellPadding=0?cellSpacing=0?>
<TBODY><TR><TD?vAlign=top?noWrap?width=0>
<A?href="#">密碼強度:</A>?
</TD>
<TD><DIV??id="passwdRating">太短</DIV>
</TD></TR><TR><TD?height=3></TD></TR>
<TR><TD?colSpan=2>
<TABLE??id="passwdBarDiv"?cellSpacing=0?cellPadding=0?width="200"??bgColor="#ffffff"?border=0>
<TBODY><TR>
<TD?id="posBar"?width="0%"?bgColor="#e0e0e0"?height="4"></TD>
<TD?id="negBar"?width="100%"?bgColor="#e0e0e0"??height="4"></TD>
</TR></TBODY>
</TABLE>
</TD></TR>
</TBODY></TABLE> </td>
????</tr>
????</table>
<script?language="javascript">
<!--
/*?Checks?Browser?Compatibility?*/
//document.getElementById("passwdBarDiv").style.display?=?"block";
var?agt?=?navigator.userAgent.toLowerCase();
var?is_op?=?(agt.indexOf("opera")?!=?-1);
var?is_ie?=?(agt.indexOf("msie")?!=?-1)?&&?document.all?&&?!is_op;
var?is_mac?=?(agt.indexOf("mac")?!=?-1);
var?is_gk?=?(agt.indexOf("gecko")?!=?-1);
var?is_sf?=?(agt.indexOf("safari")?!=?-1);
function?gff(str,?pfx)?{
var?i?=?str.indexOf(pfx);
if?(i?!=?-1)?{
var?v?=?parseFloat(str.substring(i?+?pfx.length));
if?(!isNaN(v))?{
return?v;
}
}
return?null;
}
function?Compatible()?{
if?(is_ie?&&?!is_op?&&?!is_mac)?{
var?v?=?gff(agt,?"msie?");
if?(v?!=?null)?{
return?(v?>=?6.0);
}
}
if?(is_gk?&&?!is_sf)?{
var?v?=?gff(agt,?"rv:");
if?(v?!=?null)?{
return?(v?>=?1.4);
}else{
v?=?gff(agt,?"galeon/");
if?(v?!=?null)?{
return?(v?>=?1.3);
}
}
}
if?(is_sf)?{
var?v?=?gff(agt,?"applewebkit/");
if?(v?!=?null)?{
return?(v?>=?124);
}
}
return?false;
}
??/*?We?also?try?to?create?an?xmlhttp?object?to?see?if?the?browser?supports?it?*/
myxmlhttp?=?CreateXmlHttpReq(RateUserPassXmlHttpHandler);
isBrowserCompatible?=?Compatible()?&&?myxmlhttp;
if?(!isBrowserCompatible?||?hidePasswordBar)?{
document.getElementById("passwdBarDiv").style.display?=?"none";
}
//-->?
</script>
</form>

Servlet部分,驗證密碼強度的JAVA類
程序代碼:
/*?
?*?2005-12-14
?*?Made?in?GamVan
?*/

package?com.gamvan.club.servlet;

import?java.io.IOException;
import?java.io.PrintWriter;

import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;

import?com.gamvan.tools.EncodeString;
/**
?*?@author?GamVan?by?我容易么我
?*?Powered?by?GamVan.com
?*/

public?class?RateUserPass?extends?HttpServlet?{
private?static?final?long?serialVersionUID?=?1L;
private?int?rate?=?0;

/**
?*?口令強弱等級判定,強度算法有待商戳,功能基本實現
?*?@param?pass
?*?@return
?*?2005-12-14?16:55:03?Made?In?GamVan
?*?com.gamvan.club.servlet
?*/

public?int?rateUserPass(String?pass){
/*
?*?i?值指示口令等級
?*?0?不合法口令
?*?1?太短
?*?2?弱
?*?3?一般
?*?4?很好
?*?5?極佳
?*/

int?i?=?0;
if(pass==null?||?pass.length()==0){
return?0;
}
int?hasLetter?=?EncodeString.matcherStr(pass,"[a-zA-Z]","").length();
int?hasNumber?=?EncodeString.matcherStr(pass,"[0-9]","").length();
int?passLen?=?pass.length();
if(passLen>=6){
/*?如果僅包含數字或僅包含字母?*/
if((passLen-hasLetter)==0?||?(passLen-hasNumber)==0){
if(passLen<8){
i?=?2;
}else?{
i?=?3;
}
}
/*?如果口令大于6位且即包含數字又包含字母?*/
else?if(hasLetter>0?&&?hasNumber>0){?
if(passLen>=10){
i?=?5;
}else?if(passLen>=8){
i?=?4;
}else{
i?=?3;
}
}
/*?如果既不包含數字又不包含字母?*/
else?if(hasLetter==0?&&?hasNumber==0){
if(passLen>=7){
i?=?5;
}else{
i?=?4;
}
}
/*?字母或數字有一方為0?*/
else?if(hasNumber==0||hasLetter==0){
if((passLen-hasLetter)==0?||?(passLen-hasNumber)==0){
i?=?2;
}
/*?
?*?字母數字任意一種類型小于6且總長度大于等于6
?*?則說明此密碼是字母或數字加任意其他字符組合而成
?*/

else{
if(passLen>8){
i?=?5;
}else?if(passLen==8){
i?=?4;
}else{
i?=?3;
}
}
}
}else{?//口令小于6位則顯示太短
if(passLen>0){
i?=?1;?//口令太短
}else{
i?=?0;
}
}
return?i;
}

public?void?service(HttpServletRequest?request,HttpServletResponse?response)
throws?ServletException,?IOException?
{
String?userPass?=?request.getParameter("passwd");
rate?=?rateUserPass(userPass);
response.setContentType("text/HTML;charset=UTF-8");?
PrintWriter?out?=?response.getWriter();
out.print(rate);
out.close();
if(true)return;
return?;
}

}

下面這個是強度驗證的servlet用到的一個正則表達式工具類,這里我只把我們這篇文章用到的其中一個方法貼出來給大家
程序代碼:

/*?
?*?Made?in?GamVan
?*/

package?com.gamvan.tools;
import?java.io.UnsupportedEncodingException;
import?java.security.MessageDigest;
import?sun.misc.BASE64Encoder;
import?java.util.regex.*;
import?com.gamvan.tools.MD5;
/**
?*?字符串操作集合類
?*?@author?GamVan?by?我容易么我
?*?Powered?by?GamVan.com
?*/

public?class?EncodeString{
????/**
?????*?循環找出匹配內容
?????*?@param?str
?????*?@param?cp
?????*?@param?s
?????*?@return
?????*?2005-12-11?18:45:25?Made?In?GamVan
?????*?com.gamvan.tools
?????*/

????public?static?String?matcherStr(String?str,?String?cp,?String?s){
????????if(str==null?||?str.equals("")){
????????????return?"";
????????}
????????String?txt?=?new?String();
????????txt?=?str;
????????if(str!=null?&&?!str.equals("")){
????????????txt?=?str;
????????????Pattern?p?=?Pattern.compile(cp,2);?//參數2表示大小寫不區分
????????????Matcher?m?=?p.matcher(txt);
????????????StringBuffer?sb?=?new?StringBuffer();
????????????int?i=0;
????????????boolean?result?=?m.find();
????????????//使用循環將句子里所有匹配的內容找出并替換再將內容加到sb里
????????????while(result)?{
????????????????i++;
????????????????sb.append(m.group());
????????????????sb.append(s);
????????????????//繼續查找下一個匹配對象
????????????????result?=?m.find();
????????????}
????????????txt?=?String.valueOf(sb);
????????}else{
????????????txt?=?"";
????????}
????????return?txt;???????
????}
}
地球人都知道servlet需要部署才能用我這里這個應用在web.xml是這么部署的!大家可以根據需要自己改。
程序代碼:
<servlet>
<servlet-name>RateUserPass</servlet-name>
<servlet-class>com.gamvan.club.servlet.RateUserPass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RateUserPass</servlet-name>
<url-pattern>/club/rateUserPass.gv</url-pattern>
</servlet-mapping>




☆藍色夢想☆ 2006-06-08 23:14 發表評論
]]>
這里發布的大多是關于java的錄像,希望大家喜歡http://m.tkk7.com/zlsunnan/archive/2006/01/06/26924.html☆藍色夢想☆☆藍色夢想☆Fri, 06 Jan 2006 09:53:00 GMThttp://m.tkk7.com/zlsunnan/archive/2006/01/06/26924.htmlhttp://m.tkk7.com/zlsunnan/comments/26924.htmlhttp://m.tkk7.com/zlsunnan/archive/2006/01/06/26924.html#Feedback0http://m.tkk7.com/zlsunnan/comments/commentRss/26924.htmlhttp://m.tkk7.com/zlsunnan/services/trackbacks/26924.html這里發布的大多是關于java的錄像,希望大家喜歡

☆藍色夢想☆ 2006-01-06 17:53 發表評論
]]>
主站蜘蛛池模板: 亚洲成a∨人片在无码2023 | 国产精品亚洲午夜一区二区三区| 一级毛片在线完整免费观看| 国产成人3p视频免费观看| 亚洲久悠悠色悠在线播放| 永久在线免费观看| 亚洲视频国产精品| 真人做人试看60分钟免费视频| 91情国产l精品国产亚洲区| 久久aa毛片免费播放嗯啊| 亚洲嫩模在线观看| 久久久久av无码免费网| 亚洲一级毛片视频| 免费无码看av的网站| 美女扒开屁股让男人桶爽免费| 四虎永久免费影院| 2022免费国产精品福利在线 | 24小时在线免费视频| 亚洲国产精品人久久电影| 日韩中文字幕精品免费一区| 亚洲综合精品第一页| 又粗又黄又猛又爽大片免费| eeuss影院免费92242部| 亚洲国产精品一区二区成人片国内 | 老司机在线免费视频| 亚洲中文字幕无码av永久| 成人免费视频国产| 一区二区三区免费精品视频| 国产V亚洲V天堂无码| free哆啪啪免费永久| 亚洲av永久中文无码精品综合| 一本色道久久88综合亚洲精品高清| 深夜免费在线视频| 久久精品国产亚洲av麻| 香蕉97超级碰碰碰免费公| 黄网站色视频免费看无下截 | 久视频精品免费观看99| 亚洲欧美成aⅴ人在线观看| 国产亚洲精品AA片在线观看不加载 | 亚洲欧洲精品成人久久奇米网| 你好老叔电影观看免费|