ホームページ >ウェブフロントエンド >フロントエンドQ&A >検証コード検証機能をnodejsに実装する方法
インターネットの急速な発展に伴い、セキュリティ問題はユーザーや開発者から幅広い注目を集めています。 CAPTCHA テクノロジーは、現在利用可能な最も一般的な防御メカニズムの 1 つです。 Node.js は効率的なサーバーサイド開発言語として、検証コード検証を実装することもできます。以下では、Node.js が検証コード検証を実装する方法を紹介します。
1. 確認コードとは何ですか?
検証コードは、自動化されたプログラムに対する防御技術であり、Web アプリケーションやコンピューター システムでよく使用されます。確認コードには、画像、数字、文字、または簡単な数学の質問を使用できます。正しい確認コードを入力することで、ユーザーは自分が自動プログラムではなく本物であることを証明できます。
2. 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()); });
ここでは、Express.js フレームワークを使用し、captcha-gen によって生成された検証コード イメージを 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; }
上記のコードでは、Canvas を使用して 100*50 サイズのキャンバスを作成し、その中に検証コード イメージを描画します。次に getImageData() を使用してデータを取り出し、各ピクセルの RGB 値に対して単純な平均処理を実行します。最後に、ユーザーが入力した認証コードを ASCII コードに変換して合計し、平均ピクセル値と比較し、それらが同じであれば、ユーザーが入力した認証コードが正しいことになります。
3. 概要
上記の方法により、Node.js サーバー側で検証コード検証を実装し、Web アプリケーションのセキュリティと信頼性を向上させることができます。 Node.js は最良の選択ではありませんが、ほとんどの中小規模の Web アプリケーションのニーズを満たすことができるシンプルで効率的な開発言語です。
以上が検証コード検証機能をnodejsに実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。