"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء كلمة مرور لمرة واحدة (OTP) آمنة في JavaScript وNode.js

إنشاء كلمة مرور لمرة واحدة (OTP) آمنة في JavaScript وNode.js

تم النشر بتاريخ 2024-09-02
تصفح:844

Generating a Secure igit OTP in JavaScript and Node.js

مقدمة

تعد كلمات المرور لمرة واحدة (OTPs) طريقة شائعة للتحقق من هوية المستخدم في الأنظمة الأساسية عبر الإنترنت. سواء كان ذلك تسجيل الدخول إلى حسابك المصرفي أو التحقق من البريد الإلكتروني، فإن OTPs توفر طبقة إضافية من الأمان. في هذه المدونة، سنتعرف على ثلاث طرق بسيطة لكنها فعالة لإنشاء كلمة المرور لمرة واحدة (OTP) المكونة من 6 أرقام في JavaScript، مما يضمن قدرة تطبيقك على مصادقة المستخدمين بشكل آمن. سنستكشف كلا من الأساليب التقليدية وطرق التشفير الأكثر أمانًا في Node.js.

فهم إنشاء OTP

يرمز OTP إلى كلمة المرور لمرة واحدة، وكما يوحي الاسم، فهي كلمة مرور صالحة لجلسة أو معاملة واحدة فقط. يتم استخدامه عادةً في أنظمة المصادقة الثنائية (2FA). تكون كلمات المرور لمرة واحدة بشكل عام قصيرة وسهلة التذكر وتنتهي صلاحيتها بعد فترة قصيرة. ومع ذلك، يعد إنشاء كلمات المرور لمرة واحدة (OTP) الآمنة أمرًا ضروريًا لضمان عدم إمكانية التنبؤ بها بسهولة من قبل المهاجمين.

1. إنشاء كلمة مرور لمرة واحدة (OTP) عشوائية بسيطة مكونة من 6 أرقام في JavaScript

إليك طريقة بسيطة لإنشاء كلمة المرور لمرة واحدة (OTP) المكونة من 6 أرقام باستخدام وظيفة Math.random() المضمنة في JavaScript:

function generateOTP() {
  return Math.floor(100000   Math.random() * 900000);
}

console.log(generateOTP());

كيف يعمل:

  • يقوم Math.random() بإنشاء رقم فاصلة عائمة عشوائي بين 0 و1.
  • بضربه في 900000 وإضافة 100000، نحصل على نطاق يتراوح بين 100000 و999999.
  • يضمن Math.floor() تقريب الرقم إلى أقرب عدد صحيح.

هذه الطريقة سهلة التنفيذ وتعمل بشكل جيد مع التطبيقات الأساسية. ومع ذلك، فهو ليس الخيار الأكثر أمانًا للعمليات الحساسة مثل مصادقة المستخدم.

2. تأمين إنشاء OTP باستخدام وحدة التشفير Node.js

بالنسبة للتطبيقات الأكثر حساسية، مثل المعاملات المالية أو تسجيل الدخول إلى الأنظمة الآمنة، نحتاج إلى طريقة أكثر أمانًا لإنشاء كلمة المرور لمرة واحدة (OTP). توفر وحدة التشفير في Node.js وظائف آمنة تشفيريًا يمكن استخدامها لإنشاء OTPs.

إليك كيفية استخدام crypto.randomInt() لإنشاء كلمة المرور لمرة واحدة (OTP) المكونة من 6 أرقام:

const crypto = require('crypto');

function generateOTP() {
  return crypto.randomInt(100000, 999999);
}

console.log(generateOTP());

لماذا هذا أفضل:

  • يقوم crypto.randomInt() بإنشاء عدد صحيح عشوائي آمن تشفيريا.
  • تضمن هذه الطريقة أن يكون OTP أقل قابلية للتنبؤ به وأكثر أمانًا من الهجمات مقارنة بطريقة Math.random().

يوصى بهذا الأسلوب عندما تحتاج إلى ضمان أقصى قدر من الأمان.

3. توليد كلمة مرور لمرة واحدة (OTP) من مجموعة من الأرقام

هناك طريقة أخرى تتمثل في إنشاء كلمة المرور لمرة واحدة (OTP) المكونة من 6 أرقام عن طريق تحديد أرقام عشوائية من مجموعة من الأرقام (0-9). تسمح هذه الطريقة بمزيد من المرونة، خاصة إذا كنت تريد تخصيص كيفية إنشاء كلمة المرور لمرة واحدة (OTP).

إليك كيفية القيام بذلك:

const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

function generateOTP() {
  let otp = '';
  for (let i = 0; i 



تأمين إنشاء OTP باستخدام التشفير في Node.js باستخدام مصفوفة

لإضافة طبقة أخرى من الأمان، لا يزال بإمكانك استخدام وحدة التشفير أثناء إنشاء كلمة مرور لمرة واحدة (OTP) من مصفوفة:

const crypto = require('crypto');
const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

function generateOTP() {
  let otp = '';
  for (let i = 0; i 



خاتمة

قد يبدو إنشاء كلمة مرور لمرة واحدة (OTP) أمرًا بسيطًا، ولكن القيام بذلك بشكل آمن أمر بالغ الأهمية، خاصة في التطبيقات الحساسة مثل مصادقة المستخدم. في هذه المدونة، تناولنا ثلاث طرق لإنشاء كلمة المرور لمرة واحدة (OTP) المكونة من 6 أرقام باستخدام JavaScript وNode.js. على الرغم من سهولة تنفيذ التابع Math.random()‎، إلا أنه غير مناسب للبيئات عالية الأمان. للحصول على تطبيقات أكثر أمانًا، يضمن استخدام وحدة التشفير في Node.js أن OTPs آمنة تشفيريًا.

إن دمج أساليب إنشاء OTP هذه في تطبيقاتك لن يؤدي فقط إلى تعزيز أمان المستخدم ولكن أيضًا إلى تحسين موثوقية نظامك.

شكرًا لك على القراءة! أتمنى أن تساعدك هذه المدونة على فهم الطرق المختلفة لإنشاء كلمات مرور لمرة واحدة (OTP) آمنة في JavaScript وNode.js. إذا كان لديك أي أسئلة أو اقتراحات، فلا تتردد في ترك تعليق أدناه. ترقبوا المزيد من دروس البرمجة والنصائح!

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/mahendra_singh_7500/geneating-a-secure-6-digit-otp-in-javascript-and-nodejs-2nbo?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3