1. ภาพรวมของรหัสการยืนยันภาพ:
หลายเว็บไซต์มีการใช้งาน
ผล:
เพื่อปรับปรุงความปลอดภัยของระบบ
ด้วยรหัสการยืนยันเราสามารถขอให้ผู้ใช้ป้อนข้อความบนรูปภาพหลังจากป้อนชื่อผู้ใช้รหัสผ่านและข้อมูลอื่น ๆ หลังจากส่งผู้ใช้ระบบจะแยกรหัสการตรวจสอบก่อนที่จะสร้างจากเซสชันและเปรียบเทียบกับรหัสการยืนยันที่ป้อนโดยผู้ใช้ หากการเปรียบเทียบเท่ากันหมายความว่าผู้ใช้เข้าสู่ระบบจากอินเตอร์เฟสเข้าสู่ระบบ มิฉะนั้นหมายความว่าผู้ใช้ผิดกฎหมาย เราใช้รหัสการตรวจสอบเพื่อให้แน่ใจว่าระบบจะต้องเข้าสู่ระบบได้สำเร็จก่อนที่จะใช้เพื่อหลีกเลี่ยงผู้ใช้ที่ป้อนหน้าโดยตรงเพื่อเข้าถึงในแถบที่อยู่
กล่าวอีกนัยหนึ่งการใช้รหัสการยืนยันผู้ใช้จะต้องเข้าสู่ระบบก่อนจากอินเตอร์เฟสเข้าสู่ระบบ
2. วิธีการใช้งาน การตรวจสอบ
มีการใช้คลาสคีย์สองคลาสและคลาสทั้งสองนี้เกี่ยวข้องกับผลลัพธ์ของภาพ
bufferedImage im = ใหม่ bufferedImage (60,20, bufferedImage.type_int_rgb); // พารามิเตอร์แรก IM แสดงถึงวัตถุภาพ // jpg หมายถึงประเภทเอาต์พุตภาพ // response.getOutputStream () แสดงถึงการตอบสนองของการตอบสนอง servlet จะแสดงภาพให้คุณ imageio.write (im, "jpg", response.getOutputStream ());
3. ขั้นตอน การใช้งาน
1. ใช้ bufferedImage เพื่อสร้างภาพจากนั้นใช้ imageio output และระบุเป็นรูปแบบ jpg
bufferedImage im = ใหม่ bufferedImage (60,20, bufferedImage.type_int_rgb); // พารามิเตอร์แรก IM แสดงถึงวัตถุภาพ // jpg หมายถึงประเภทเอาต์พุตภาพ // response.getOutputStream () แสดงถึงการตอบสนองของการตอบสนอง servlet จะแสดงภาพให้คุณ imageio.write (im, "jpg", response.getOutputStream ());
2. รับวัตถุการวาดภาพ
Graphics g = im.getGraphics();
3. เติมในพื้นที่วาดภาพ
สุ่ม rm = ใหม่สุ่ม (); สี c = สีใหม่ (rm.nextint (255), rm.nextint (255), rm.nextint (255)); g.setcolor (c); // เติมสีของภาพทั้งหมด g.fillrect (0, 0, 60, 20, 20);
4. หมายเลขเอาต์พุตไปยังรูปภาพ
G.SetColor (สีใหม่ (RM.Nextint (255), RM.Nextint (255), RM.Nextint (255))); G.SetFont (ฟอนต์ใหม่ ("Lishu จีน", Font.bold | Font.italic, 28)); G.Drawstring ("8", 18);5. สุ่ม 4 หลัก
// สุ่มสร้างตัวเลข 4 หลักสำหรับ (int i = 0; i <4; i ++) {g.setColor (สีใหม่ (RM.Nextint (255), RM.Nextint (255), RM.Nextint (255))); G.SetFont (ฟอนต์ใหม่ ("gungsuh", font.bold | font.italic, 22)); G.DrawString (""+rm.nextint (10), (i*15) +2, 18);}6. แบบสุ่มสร้างภาษาจีน
String str = "ผู้ที่มีฟ้าร้องอยู่ในหน้าอกและใบหน้าเหมือนทะเลสาบแบนสามารถเรียกได้ว่าเป็นนายพล"; สำหรับ (int i = 0; i <4; i ++) {g.setColor (สีใหม่ (rm.nextint (255), rm.nextint (255), rm.nextint (255))); G.SetFont (ฟอนต์ใหม่ ("gungsuh", font.bold | font.italic, 15)); G.DrawString (""+str.charat (rm.nextint (str.length ()), (i*15) +2, 18);}7. วิธีแนะนำรหัสการยืนยันนี้ในหน้า:
<img src="/ImageServlet">
8. บันทึกตัวเลขสำหรับการเปรียบเทียบการเข้าสู่ระบบ
// บันทึกตัวเลขที่ได้รับสี่ตัวลงในเซสชันเพื่อให้เมื่อผู้ใช้เข้าสู่ระบบจะใช้เพื่อเปรียบเทียบ request.getSession (). setAttribute ("piccode", sbf.toString ());9. การตรวจสอบเข้าสู่ระบบ
ก่อนอื่นจำเป็นต้องตรวจสอบว่าผู้ใช้มีอยู่ในฐานข้อมูลหรือไม่ หากมีอยู่ก็จำเป็นต้องตรวจสอบว่ารหัสการตรวจสอบที่ป้อนนั้นสอดคล้องกันหรือไม่
หลังจากการตรวจสอบสำเร็จจะต้องส่งต่อไปยังหน้าการดำเนินการที่เกี่ยวข้อง
ตัวอย่างรหัส:
บูลีน b_exist = login.validate (ชื่อผู้ใช้, passwd); // ถ้าผู้ใช้มีอยู่ถ้า (b_exist) {string pic = ""+request.getSession (). getAttribute ("piccode"); // เปรียบเทียบรหัสการตรวจสอบถ้า (! pic.equals ("") && pic.equals (รหัส)) {// ข้อมูลผู้ใช้ที่เก็บข้อมูลลงในเซสชันสำหรับ request.getSession () SetAttribute ("ชื่อผู้ใช้" ชื่อผู้ใช้); Response.sendredirect ("index.jsp"); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยในการศึกษาหรือทำงานของทุกคน ฉันหวังว่าจะสนับสนุน Wulin.com เพิ่มเติม!