首先創建驗證碼,通過短信代理將其發送到用戶指定的手機,并在用戶提交后進行比較,看驗證碼是否一致。
整體流程:
2、增加時間限制,間隔一定時間有效;java web 短信驗證碼。
3。數據庫存儲手機發送,如手機號碼、時間、IP;
4。根據收集數據判斷是否刷機、禁用IP或手機號碼等,設置禁用時間
5。根據實際情況,每天設置相同的設置IP,**手機號短信數量javaweb實現短信驗證。
importjava。awt。*;java實現短信驗證碼。
importjava。io。*;
importjava。util。*;java生成短信驗證碼。
;java實現短信驗證碼登錄。
;java短信接口api。
publicclassPictureCheckCodeextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
publicPictureCheckCode(){java短信開發。
super();publicvoiddestroy(){
super。destroy();publicvoidinit()throwsServletException{
super。init();/*該方法的主要功能是獲得隨機生成的顏色*/java發短信功能。
publicColorgetRandColor(ints,inte){
Randomrandom=newRandom();
if(s>)s=;java實現發送短信。
if(e>)e=;
intr,g,b;
r=s random。nextInt(e-s);///在RGB顏色中隨機生成R值java發送短信接口。
g=s random。nextInt(e-s);///在RGB顏色中隨機生成g值java短信接口開發實例。
b=s random。nextInt(e-s);///在RGB顏色中隨機生成B值
returnnewColor(r,g,b);@Override
publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)java 短信系統 開發。
throwsServletException,IOException{
//設置不緩存圖片
response。setHeader("Pragma","No-cache");
response。setHeader("Cache-Control","No-cache");
response。setDateHeader("Expires",0);java驗證碼實現。
///指定生成的響應圖片不能缺少這句話,否則會出錯。java登錄驗證。
response。setContentType("image/jpeg");javaweb登錄驗證。
intwidth=86,height=22。//指定生成驗證碼的寬度和高度怎么驗證java環境。
BufferedImageimage=newBufferedImage(width,height,BufferedImage。TYPE_INT_RGB);//創建BufferedImage對象的作用相當于圖片
Graphicsg=image。getGraphics()//創建Graphics對象,相當于畫筆
=()g;///創建對象驗證java環境變量。
Randomrandom=newRandom();
Fontmfont=newFont(楷體”,Font。BOLD,16)//定義字體樣式驗證java是否安裝成功。
g。setColor(getRandColor(,));java郵箱驗證。
g。fillRect(0,0,width,height);//繪制背景java用戶登錄驗證。
g。setFont(mfont);///設置字體
g。setColor(getRandColor(,));
///繪制條的顏色和位置都是隨機生成的線,這條線是2fJava發短信。
for(inti=0;i<;i ){
intx=random。nextInt(width-1);java實現。
inty=random。nextInt(height-1);
intx1=random。nextInt(6) 1;
inty1=random。nextInt(12) 1;
BasicStrokebs=newBasicStroke(2f,BasicStroke。CAP_BUTT,BasicStroke。JOIN_BEVEL);///定制線條樣式java登錄。
line=new。Double(x,y,x x1,y y1);java輸入。
。setStroke(bs);java短信驗證。
。draw(line);///繪制直線//輸出由英文、數字和中文隨機組成的驗證文本,具體組合方法根據生成的隨機數確定。
StringsRand="";
Stringctmp="";
intitmp=0;
///制定輸出的驗證碼為四位
for(inti=0;i<4;i ){
switch(random。nextInt(3)){
case1://生成A-Z的字母
itmp=random。nextInt(26) 65;
ctmp=String。valueOf((char)itmp);
break;
case2:///生成漢字
String[]rBase={“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”a","b","c","d","e","f"};
///生成**位區碼
intr1=random。nextInt(3) 11;
Stringstr_r1=rBase[r1];
//生成第二位區碼
intr2;
if(r1==13){
r2=random。nextInt(7);
}else{
r2=random。nextInt(16);Stringstr_r2=rBase[r2];
///生成**位碼
intr3=random。nextInt(6) 10;
Stringstr_r3=rBase[r3];
///生成第二位碼
intr4;
if(r3==10){
r4=random。nextInt(15) 1;
}elseif(r3==15){
r4=random。nextInt(15);
}else{
r4=random。nextInt(16);Stringstr_r4=rBase[r4];
///將生成的內碼轉換為漢字
byte[]bytes=newbyte[2];
///將生成的區碼保存到字節數組的**個元素中
Stringstr_12=str_r1 str_r2;
inttempLow=Integer。parseInt(str_12,16);
bytes[0]=(byte)tempLow;
///將生成的位碼保存到字節數組的第二個元素中
Stringstr_34=str_r3 str_r4;
inttempHigh=Integer。parseInt(str_34,16);
bytes[1]=(byte)tempHigh;
ctmp=newString(bytes);
break;
default:
itmp=random。nextInt(10) 48;
ctmp=String。valueOf((char)itmp);
break;sRand =ctmp;
Colorcolor=newColor(20 random。nextInt(),20 random。nextInt(),random。nextInt());
g。setColor(color);
///隨機縮放生成的隨機數并旋轉角度PS。建議不要縮放和旋轉文本,因為圖片可能不正常顯示
/*旋轉文本以設定角度*/
_word=()g;
AffineTransformtrans=newAffineTransform();
trans。rotate((45)**i 8,7);
/*縮放文字*/
floatscaleSize=random。nextFloat() 0。8f;
if(scaleSize>1f)scaleSize=1f;
trans。scale(scaleSize,scaleSize);
_word。setTransform(trans);
g。drawString(ctmp,15*i 18,14);HttpSessionsession=request。getSession(true);
session。setAttribute("randCheckCode",sRand);
g。dispose();///釋放g占用的系統資源
ImageIO。write(image,"JPEG",response。getOutputStream();//輸出圖片;
中企動力是一家專業的網絡推廣公司,我們擁有豐富的網絡推廣經驗和專業的團隊,能夠為企業提供全方位的網絡推廣服務。我們為企業提供網站建設、網站優化、平臺推廣等服務,幫中企動力業在網絡上提升知名度、擴大影響力、提升銷售額。如果您有網絡推廣的需求,歡迎聯系中企動力加微信:CE4006608066,我們將竭誠為您服務。