Il y a eu de nombreux articles sur les codes de vérification d'image Java récemment, aidant tout le monde à maîtriser la technologie de génération de code de vérification Java. Ce qui suit est un moyen le plus simple de générer des codes de vérification d'image Java pour votre référence.
De nos jours, toutes les industries considéreront l'enregistrement des machines lors de la personnalisation des systèmes. Le moyen le plus efficace est maintenant de saisir la vérification. Il existe de nombreuses façons de vérifier maintenant:
1. La vérification du problème est en fait également la vérification de l'image. Générez une question sur l'image, puis entrez la case pour entrer la réponse.
2. Vérification de l'image, entrez les informations du texte affichées sur l'image.
3. La vérification des SMS est assez compliquée et les utilisateurs ne l'aiment pas beaucoup.
4. Il existe également la dernière méthode de vérification de Baidu. Le texte est généré sur l'image et une zone de clic texte apparaît pour sélectionner le texte que vous voyez sur l'image de vérification.
Partageons maintenant le code pour Java pour générer du code de vérification, qui est un code de base. Il peut être utilisé directement dans l'apprentissage. Si vous avez besoin d'une vérification plus complexe, vous pouvez ajouter vous-même une vérification logique.
@ControllerPublic class ImgverifyCode étend httpServlet {/ ** * * / private static final long SerialVersionUID = 1l; / ** * Largeur de l'image de code de vérification. * / private int largeth = 70; / ** * La hauteur de l'image du code de vérification. * / private int hauteur = 30; / ** * Nombre de caractères de code de vérification * / private int codeCount = 5; / ** * xx * / private int xx = 0; / ** * Hauteur de police * / private int fonteight; / ** * Codey * / private int codey; / ** * CodeeSequence * / String [] CodeeSequence = {"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"}; / ** * Initialiser les attributs d'image de vérification * / public void init () lève Servlexception {// obtenir des informations initiales sur web.xml // width String strwidth = width + ""; // chaîne de hauteur strheight = hauteur + ""; // Nombre de caractères string strCodeCount = codeCount + ""; // convertit les informations configurées en un essai numérique {if (strwidth! = Null && strwidth.length ()! = 0) {width = Integer.ParseInt (strwidth); } if (strheight! = null && strheight.length ()! = 0) {height = Integer.ParseInt (strheight); } if (strCodeCount! = null && strCodeCount.Length ()! = 0) {codeCount = Integer.ParseInt (strCodeCount); }} catch (NumberFormatexception e) {e.printStackTrace (); } xx = largeur / (codeCount + 2); // la distance horizontale de la génération de nombres aléatoires fonteh = hauteur - 12; // La hauteur numérique de la génération de nombres aléatoires Codey = hauteur - 8; // La distance verticale de la génération de nombres aléatoires} Images de chaîne protégées (HttpServletRequest req, httpservletResponse resp) lève Servlexception, ioException {init (); // Définir le tampon d'image BuffredImage BuffImg = new BufferedImage (largeur, hauteur, bufferedImage.type_int_rgb); Graphics2d GD = BuffImg.CreateGraphics (); // Définir le tampon d'image BuffredImage BuffImg = new BufferedImage (largeur, hauteur, bufferedImage.type_int_rgb); Graphics2d GD = BuffImg.CreateGraphics (); // Définir le tampon d'image BuffredImage BuffImg = new BufferedImage (largeur, hauteur, bufferedImage.type_int_rgb); Graphics2d GD = BuffImg.CreateGraphics (); // Créer une classe de générateur de nombres aléatoires aléatoire aléatoire = new random (); // Remplissez l'image en tant que blanc gd.setColor (color.white); gd.fillrect (0, 0, largeur, hauteur); // Créez une police, la taille de la police doit être déterminée en fonction de la hauteur de l'image. FONT FONT = NOUVEAU FONT ("Fixys", Font.Plain, Fontheight); // Définissez la police. gd.setfont (font); // dessine des frontières. gd.setColor (color.black); gd.Drawrect (0, 0, largeur - 1, hauteur - 1); // génère au hasard 4 lignes d'interférence, ce qui rend le code d'authentification dans l'image moins susceptible d'être détecté par d'autres programmes. gd.setColor (color.black); pour (int i = 0; i <4; i ++) {int x = random.nextint (largeur); int y = random.nextint (hauteur); int xl = random.nextint (12); int yl = random.nextint (12); gd.Drawline (x, y, x + xl, y + yl); } // RandomCode est utilisé pour enregistrer des codes de vérification générés de manière aléatoire afin que les utilisateurs puissent vérifier après la connexion. StringBuffer randomcode = new StringBuffer (); int rouge = 0, vert = 0, bleu = 0; // génère au hasard un code de vérification du numéro de code. for (int i = 0; i <codeCount; i ++) {// Obtenez le numéro de code de vérification généré au hasard. String strrand = string.valueof (CodeeSequence [random.nextint (27)]); // Générez des composants de couleur aléatoires pour construire la valeur de couleur, de sorte que la valeur de couleur de chaque sortie de chiffre sera différente. rouge = random.nextint (125); vert = random.nextint (255); bleu = random.nextint (200); // Utilisez la couleur générée aléatoirement pour dessiner le code de vérification dans l'image. gd.setColor (nouvelle couleur (rouge, vert, bleu)); gd.Drawstring (strrand, (i + 1) * xx, codey); // Combinez les quatre nombres aléatoires générés ensemble. randomcode.append (strrand); } // Enregistrez le code de vérification à quatre chiffres dans la session. HttpSession Session = req.getSession (); session.setAttribute ("validatecode", randomcode.toString ()); // Le cache d'image est interdit. resp.sethEader ("pragma", "non-cache"); resp.sethEader ("Cache-Control", "No-cache"); resp.setDateHeader ("expire", 0); resp.setContentType ("image / jpeg"); // Sortie de l'image vers le flux de sortie du servlet. ServletOutputStream sos = resp.getOutputStream (); ImageIo.write (Buffimg, "JPEG", SOS); sos.close (); retourner null; }}Ce code est la méthode de base pour générer des images de vérification.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous. Vous pouvez également consulter l'article précédent pour une étude approfondie.