มีบทความมากมายเกี่ยวกับรหัสการตรวจสอบภาพ Java เมื่อเร็ว ๆ นี้ช่วยให้ทุกคนฝึกฝนเทคโนโลยีการสร้างรหัสการตรวจสอบ Java ต่อไปนี้เป็นวิธีที่ง่ายที่สุดในการสร้างรหัสการตรวจสอบภาพ Java สำหรับการอ้างอิงของคุณ
ทุกวันนี้อุตสาหกรรมทั้งหมดจะพิจารณาการลงทะเบียนเครื่องเมื่อปรับแต่งระบบ วิธีที่มีประสิทธิภาพที่สุดในขณะนี้คือการเข้าสู่การตรวจสอบ มีหลายวิธีในการตรวจสอบในขณะนี้:
1. การตรวจสอบปัญหา คือการตรวจสอบภาพ สร้างคำถามเกี่ยวกับรูปภาพแล้วป้อนกล่องเพื่อป้อนคำตอบ
2. การตรวจสอบรูปภาพ ป้อนข้อมูลข้อความที่แสดงบนรูปภาพ
3. การตรวจสอบ SMS ค่อนข้างซับซ้อนและผู้ใช้ไม่ชอบมากนัก
4. นอกจากนี้ยังมีวิธีการตรวจสอบล่าสุดของ Baidu ข้อความถูกสร้างขึ้นบนรูปภาพและกล่องคลิกข้อความจะปรากฏขึ้นเพื่อเลือกข้อความที่คุณเห็นในรูปภาพการตรวจสอบ
ตอนนี้ให้แชร์รหัสสำหรับ Java เพื่อสร้างรหัสการตรวจสอบซึ่งเป็นรหัสพื้นฐาน มันสามารถใช้โดยตรงในการเรียนรู้ หากคุณต้องการการตรวจสอบที่ซับซ้อนมากขึ้นคุณสามารถเพิ่มการตรวจสอบเชิงตรรกะด้วยตัวเอง
@ControllerPublic คลาส imgverifyCode ขยาย httpservlet { / ** * * / ส่วนตัวคงที่สุดท้าย serialVersionUid = 1l; /*** ความกว้างของภาพรหัสการตรวจสอบ */ ความกว้าง int ส่วนตัว = 70; /*** ความสูงของรูปภาพรหัสการตรวจสอบ */ ความสูง int ส่วนตัว = 30; / *** จำนวนอักขระการตรวจสอบรหัส*/ codecount int ส่วนตัว = 5; / ** * xx */ ส่วนตัว int xx = 0; / *** ความสูงของตัวอักษร*/ int private int fontheight; / ** * codey */ private int codey; / ** * codesequence */ string [] codesequence = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "A", "B", "B", "C", "C" , "D", "D", "E", "E", "F", "F", "G", "Z", "X", "Q", "V"}; / *** เริ่มต้นแอตทริบิวต์ภาพการตรวจสอบ*/ โมฆะสาธารณะ init () พ่น servletexception {// รับข้อมูลเริ่มต้นจาก web.xml // ความกว้างสตริง strwidth = width+""; // string string strheight = ความสูง+""; // จำนวนอักขระสตริง strCodecount = codecount+""; // แปลงข้อมูลที่กำหนดค่าเป็นลองตัวเลข {ถ้า (strwidth! = null && strwidth.length ()! = 0) {width = integer.parseint (strwidth); } if (strheight! = null && striight.length ()! = 0) {ความสูง = integer.parseint (striight); } if (strCodeCount! = null && strCodeCount.length ()! = 0) {codecount = integer.parseint (strCodeCount); }} catch (numberFormatexception e) {e.printStackTrace (); } xx = ความกว้าง / (codecount + 2); // ระยะทางแนวนอนของการสร้างตัวเลขสุ่ม fontheight = ความสูง - 12; // ความสูงเชิงตัวเลขของการสร้างตัวเลขสุ่ม codey = ความสูง - 8; // ระยะทางแนวตั้งของการสร้างตัวเลขสุ่ม} ภาพสตริงที่ได้รับการป้องกัน (HTTPSERVLETREQUEST REQ, HTTPSERVLETRESSSESSESS) พ่น ServleTexception, iOexception {init (); // กำหนดบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ buffimg = bufferedImage ใหม่ (ความกว้าง, ความสูง, bufferedImage.type_int_rgb); graphics2d gd = buffimg.creategraphics (); // กำหนดบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ buffimg = bufferedImage ใหม่ (ความกว้าง, ความสูง, bufferedImage.type_int_rgb); graphics2d gd = buffimg.creategraphics (); // กำหนดบัฟเฟอร์บัฟเฟอร์บัฟเฟอร์ buffimg = bufferedImage ใหม่ (ความกว้าง, ความสูง, bufferedImage.type_int_rgb); graphics2d gd = buffimg.creategraphics (); // สร้างคลาสเครื่องกำเนิดตัวเลขแบบสุ่มสุ่มสุ่ม = new Random (); // เติมภาพเป็นสีขาว gd.setColor (color.white); gd.fillrect (0, 0, ความกว้าง, ความสูง); // สร้างแบบอักษรขนาดของตัวอักษรควรถูกกำหนดตามความสูงของภาพ FONT FONT = FONT ใหม่ ("คงที่", font.plain, fontheight); // ตั้งค่าตัวอักษร gd.setFont (แบบอักษร); // วาดเส้นขอบ gd.setColor (color.black); gd.drawRect (0, 0, ความกว้าง - 1, ความสูง - 1); // แบบสุ่มสร้าง 4 บรรทัดการรบกวนทำให้รหัสการตรวจสอบความถูกต้องในภาพมีโอกาสน้อยที่จะตรวจพบได้โดยโปรแกรมอื่น ๆ gd.setColor (color.black); สำหรับ (int i = 0; i <4; i ++) {int x = random.nextint (ความกว้าง); int y = random.nextint (ความสูง); int xl = random.nextint (12); int yl = random.nextint (12); gd.drawline (x, y, x + xl, y + yl); } // แบบสุ่มใช้เพื่อบันทึกรหัสการตรวจสอบที่สร้างขึ้นแบบสุ่มเพื่อให้ผู้ใช้สามารถตรวจสอบหลังจากเข้าสู่ระบบ StringBuffer randomCode = new StringBuffer (); int red = 0, green = 0, blue = 0; // แบบสุ่มสร้างรหัสการตรวจสอบของหมายเลข codecount สำหรับ (int i = 0; i <codecount; i ++) {// รับหมายเลขรหัสการตรวจสอบที่สร้างขึ้นแบบสุ่ม String strrand = string.valueof (codesequence [random.nextint (27)]); // สร้างส่วนประกอบสีแบบสุ่มเพื่อสร้างค่าสีเพื่อให้ค่าสีของเอาต์พุตแต่ละหลักจะแตกต่างกัน red = random.nextint (125); Green = Random.nextint (255); Blue = Random.nextint (200); // ใช้สีที่สร้างแบบสุ่มเพื่อวาดรหัสการตรวจสอบลงในภาพ gd.setColor (สีใหม่ (สีแดง, เขียว, สีน้ำเงิน)); gd.DrawString (strrand, (i + 1) * xx, codey); // รวมตัวเลขสุ่มสี่ตัวที่สร้างเข้าด้วยกัน RandomCode.Append (Strrand); } // บันทึกรหัสการตรวจสอบสี่หลักลงในเซสชัน httpsession session = req.getSession (); Session.setAttribute ("ValidateCode", ubertCode.ToString ()); // ห้ามแคชรูปภาพ resp.setheader ("pragma", "no-cache"); resp.setheader ("แคชควบคุม", "ไม่มีแคช"); resp.setDateHeader ("หมดอายุ", 0); resp.setContentType ("image/jpeg"); // เอาต์พุตภาพไปยังสตรีมเอาต์พุต servlet ServletOutputStream SOS = resp.getOutputStream (); Imageio.write (buffimg, "jpeg", sos); sos.close (); คืนค่า null; -รหัสนี้เป็นวิธีพื้นฐานสำหรับการสร้างภาพการตรวจสอบ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน นอกจากนี้คุณยังสามารถตรวจสอบบทความก่อนหน้าสำหรับการศึกษาเชิงลึก