Методы генерации случайного OTP в Node.js

Вот несколько способов создания случайного OTP (одноразового пароля) в Node.js:

Метод 1: использование Math.random()

function generateOTP(length) {
  let otp = '';
  const characters = '0123456789';
  const charactersLength = characters.length;

  for (let i = 0; i < length; i++) {
    otp += characters.charAt(Math.floor(Math.random() * charactersLength));
  }

  return otp;
}
// Usage
const otp = generateOTP(6); // Generates a 6-digit OTP
console.log(otp);

Метод 2. Использование криптомодуля

const crypto = require('crypto');
function generateOTP(length) {
  const buffer = crypto.randomBytes(length);
  let otp = '';
  for (let i = 0; i < buffer.length; i++) {
    otp += buffer[i].toString().padStart(3, '0').slice(0, 1);
  }
  return otp;
}
// Usage
const otp = generateOTP(6); // Generates a 6-digit OTP
console.log(otp);

Метод 3. Использование модуля random-int (требуется установка)

const randomInt = require('random-int');
function generateOTP(length) {
  let otp = '';
  for (let i = 0; i < length; i++) {
    otp += randomInt(0, 9);
  }
  return otp;
}
// Usage
const otp = generateOTP(6); // Generates a 6-digit OTP
console.log(otp);