UNPKG

test-numbers-generator

Version:

Generate and validate European test phone numbers (mobile and landline) in safe, non-existent ranges.

34 lines (33 loc) 1.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateDeterministicPassword = generateDeterministicPassword; const crypto_1 = __importDefault(require("crypto")); /** * Example usage: * * import { generateDeterministicPassword } from './passwordGenerator'; * * const password = generateDeterministicPassword('verzorger1kind', 'myAppSecret'); * console.log(password); // Always the same for same secret+appSecret */ /** * Generates a deterministic password based on a user secret and an app secret (pepper). * The same combination will always produce the same password. * @param userSecret - A user-provided secret string * @param appSecret - An application-wide secret (pepper, should be kept private) * @returns Deterministic password string (12 chars) */ function generateDeterministicPassword(userSecret, appSecret) { const length = 12; // Combine user secret and app secret const input = `${userSecret}:${appSecret}`; // Create a SHA-256 hash const hash = crypto_1.default.createHash('sha256').update(input).digest('base64'); // Remove non-alphanumeric characters for password safety const safe = hash.replace(/[^a-zA-Z0-9]/g, ''); // Return the requested length return safe.slice(0, length); }