UNPKG

fortify2-js

Version:

MOST POWERFUL JavaScript Security Library! Military-grade cryptography + 19 enhanced object methods + quantum-resistant algorithms + perfect TypeScript support. More powerful than Lodash with built-in security.

121 lines (117 loc) 3.7 kB
'use strict'; var passwordCore = require('./password-core.js'); require('../random/random-types.js'); require('../random/random-sources.js'); require('crypto'); require('nehonix-uri-processor'); require('../../utils/memory/index.js'); require('../../types.js'); var passwordTypes = require('./password-types.js'); require('../hash/hash-core.js'); require('../hash/hash-types.js'); require('argon2'); require('../../algorithms/hash-algorithms.js'); require('child_process'); require('../../types/secure-memory.js'); require('https'); require('../../security/runtime-verification.js'); require('../../security/tamper-evident-logging.js'); /* --------------------------------------------------------------------------------------------- * Copyright (c) NEHONIX INC. All rights reserved. * Licensed under the MIT License. See LICENSE in the project root for license information. * ------------------------------------------------------------------------------------------- */ /** * FortifyJS Password Management Module => FPMM * * Modular, military-grade password management system * * @example * ```typescript * import { PasswordManager } from "fortify2-js/core/password"; * * // Create password manager instance * const pm = PasswordManager.getInstance(); * * // Hash a password * const hash = await pm.hash("mySecurePassword123!"); * * // Verify a password * const result = await pm.verify("mySecurePassword123!", hash); * console.log(result.isValid); // true * * // Generate secure password * const generated = pm.generatePassword({ length: 16, minStrengthScore: 90 }); * console.log(generated.password); * * // Migrate from bcrypt * const migration = await pm.migrate("password", bcryptHash); * if (migration.migrated) { * console.log("Successfully migrated to FortifyJS!"); * } * ``` */ passwordCore.PasswordManager.getInstance(); /** * Get default password policy */ function getDefaultPasswordPolicy() { return { minLength: 8, maxLength: 128, requireUppercase: true, requireLowercase: true, requireNumbers: true, requireSymbols: true, minStrengthScore: 70, forbiddenPatterns: [ /^[0-9]+$/, // All numbers /^[a-zA-Z]+$/, // All letters /^(.)\1{2,}$/, // Repeated characters /^(qwerty|asdfgh|zxcvbn)/i, // Keyboard patterns /^(password|admin|user)/i, // Common words ], forbiddenWords: [ "password", "admin", "user", "login", "welcome", "123456", "qwerty", "abc123", "password123", ], }; } /** * Get recommended security configuration */ function getRecommendedConfig() { return { defaultAlgorithm: "argon2id", defaultSecurityLevel: "high", timingSafeVerification: true, secureMemoryWipe: true, enableMigration: true, policy: getDefaultPasswordPolicy(), }; } // ===== DEFAULT INSTANCE ===== /** * Default password manager instance * Ready to use out of the box */ passwordCore.PasswordManager.getInstance(getRecommendedConfig()); exports.PasswordManager = passwordCore.PasswordManager; Object.defineProperty(exports, 'PasswordAlgorithm', { enumerable: true, get: function () { return passwordTypes.PasswordAlgorithm; } }); Object.defineProperty(exports, 'PasswordSecurityLevel', { enumerable: true, get: function () { return passwordTypes.PasswordSecurityLevel; } }); exports.getDefaultPasswordPolicy = getDefaultPasswordPolicy; exports.getRecommendedConfig = getRecommendedConfig; //# sourceMappingURL=index.js.map