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
JavaScript
;
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