Avec le développement rapide d'Internet, les problèmes de sécurité ont retenu l'attention des utilisateurs et des développeurs. La technologie CAPTCHA est l’un des mécanismes de défense les plus courants actuellement disponibles. En tant que langage de développement côté serveur efficace, Node.js peut également implémenter la vérification du code de vérification. Ce qui suit présente comment Node.js implémente la vérification du code de vérification.
1. Qu'est-ce qu'un code de vérification ?
Le Captcha est une technique de défense contre les programmes automatisés, souvent utilisés dans les applications Web ou les systèmes informatiques. Le code de vérification peut être une image, un chiffre ou une lettre, ou une simple question mathématique. En remplissant le code de vérification correct, l'utilisateur peut prouver qu'il est une personne réelle et non un programme automatisé.
2. Étapes pour implémenter la vérification du code de vérification dans Node.js
npm install captcha-gen
const express = require('express'); const captcha = require('captcha-gen'); let app = express(); app.use((req, res, next) => { let cap = captcha.create({ width: 120, height: 50 }); res.type('svg'); res.send(cap.svg()); });
Ici, nous utilisons le framework Express.js et renvoyons l'image du code de vérification générée par captcha-gen au navigateur au format SVG.
const Canvas = require('canvas'); function verifyCode(code, userInput) { let c = new Canvas(100, 50); let ctx = c.getContext('2d'); ctx.font = '30px Impact'; ctx.fillStyle = '#fff'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#000'; ctx.fillText(code, 10, 35); let imageData = ctx.getImageData(0, 0, 100, 50); let pixels = imageData.data; for (let i = 0; i < pixels.length; i += 4) { pixels[i] = pixels[i + 1] = pixels[i + 2] = (pixels[i] + pixels[i + 1] + pixels[i + 2]) / 3; } let sum = 0; for (let i = 0; i < pixels.length; i++) { sum += pixels[i]; } sum = sum / pixels.length; let res = 0; for (let i = 0; i < userInput.length; i++) { res += userInput[i].charCodeAt(0); } return (sum - res) % 256 === 0; }
Dans le code ci-dessus, nous utilisons Canvas pour créer un canevas de taille 100*50 et y dessiner l'image du code de vérification. Utilisez ensuite getImageData() pour extraire les données et effectuer un simple processus de moyenne sur la valeur RVB de chaque pixel. Enfin, le code de vérification saisi par l'utilisateur est converti en code ASCII et additionné, et comparé à la valeur moyenne des pixels. S'ils sont identiques, cela signifie que le code de vérification saisi par l'utilisateur est correct.
3. Résumé
Grâce à la méthode ci-dessus, nous pouvons implémenter la vérification du code de vérification côté serveur Node.js pour améliorer la sécurité et la fiabilité des applications Web. Bien que Node.js ne soit pas le meilleur choix, il s'agit d'un langage de développement simple et efficace qui peut répondre aux besoins de la plupart des applications Web de petite et moyenne taille.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!