PHP 8.2.30
Preview: pbkdf2.js Size: 4.45 KB
/home/byroehnu/.trash/node_modules11/crypto-js/pbkdf2.js

;(function (root, factory, undef) {
	if (typeof exports === "object") {
		// CommonJS
		module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
	}
	else if (typeof define === "function" && define.amd) {
		// AMD
		define(["./core", "./sha256", "./hmac"], factory);
	}
	else {
		// Global (browser)
		factory(root.CryptoJS);
	}
}(this, function (CryptoJS) {

	(function () {
	    // Shortcuts
	    var C = CryptoJS;
	    var C_lib = C.lib;
	    var Base = C_lib.Base;
	    var WordArray = C_lib.WordArray;
	    var C_algo = C.algo;
	    var SHA256 = C_algo.SHA256;
	    var HMAC = C_algo.HMAC;

	    /**
	     * Password-Based Key Derivation Function 2 algorithm.
	     */
	    var PBKDF2 = C_algo.PBKDF2 = Base.extend({
	        /**
	         * Configuration options.
	         *
	         * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
	         * @property {Hasher} hasher The hasher to use. Default: SHA256
	         * @property {number} iterations The number of iterations to perform. Default: 250000
	         */
	        cfg: Base.extend({
	            keySize: 128/32,
	            hasher: SHA256,
	            iterations: 250000
	        }),

	        /**
	         * Initializes a newly created key derivation function.
	         *
	         * @param {Object} cfg (Optional) The configuration options to use for the derivation.
	         *
	         * @example
	         *
	         *     var kdf = CryptoJS.algo.PBKDF2.create();
	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
	         *     var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
	         */
	        init: function (cfg) {
	            this.cfg = this.cfg.extend(cfg);
	        },

	        /**
	         * Computes the Password-Based Key Derivation Function 2.
	         *
	         * @param {WordArray|string} password The password.
	         * @param {WordArray|string} salt A salt.
	         *
	         * @return {WordArray} The derived key.
	         *
	         * @example
	         *
	         *     var key = kdf.compute(password, salt);
	         */
	        compute: function (password, salt) {
	            // Shortcut
	            var cfg = this.cfg;

	            // Init HMAC
	            var hmac = HMAC.create(cfg.hasher, password);

	            // Initial values
	            var derivedKey = WordArray.create();
	            var blockIndex = WordArray.create([0x00000001]);

	            // Shortcuts
	            var derivedKeyWords = derivedKey.words;
	            var blockIndexWords = blockIndex.words;
	            var keySize = cfg.keySize;
	            var iterations = cfg.iterations;

	            // Generate key
	            while (derivedKeyWords.length < keySize) {
	                var block = hmac.update(salt).finalize(blockIndex);
	                hmac.reset();

	                // Shortcuts
	                var blockWords = block.words;
	                var blockWordsLength = blockWords.length;

	                // Iterations
	                var intermediate = block;
	                for (var i = 1; i < iterations; i++) {
	                    intermediate = hmac.finalize(intermediate);
	                    hmac.reset();

	                    // Shortcut
	                    var intermediateWords = intermediate.words;

	                    // XOR intermediate with block
	                    for (var j = 0; j < blockWordsLength; j++) {
	                        blockWords[j] ^= intermediateWords[j];
	                    }
	                }

	                derivedKey.concat(block);
	                blockIndexWords[0]++;
	            }
	            derivedKey.sigBytes = keySize * 4;

	            return derivedKey;
	        }
	    });

	    /**
	     * Computes the Password-Based Key Derivation Function 2.
	     *
	     * @param {WordArray|string} password The password.
	     * @param {WordArray|string} salt A salt.
	     * @param {Object} cfg (Optional) The configuration options to use for this computation.
	     *
	     * @return {WordArray} The derived key.
	     *
	     * @static
	     *
	     * @example
	     *
	     *     var key = CryptoJS.PBKDF2(password, salt);
	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
	     *     var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
	     */
	    C.PBKDF2 = function (password, salt, cfg) {
	        return PBKDF2.create(cfg).compute(password, salt);
	    };
	}());


	return CryptoJS.PBKDF2;

}));

Directory Contents

Dirs: 1 × Files: 55

Name Size Perms Modified Actions
docs DIR
- drwxr-xr-x 2026-02-14 19:19:26
Edit Download
8.45 KB lrw-r--r-- 2026-02-14 19:19:12
Edit Download
20.58 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
645 B lrw-r--r-- 2026-02-14 19:19:26
Edit Download
29.17 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
482 B lrw-r--r-- 2026-02-14 19:19:26
Edit Download
23.08 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
213.96 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
3.99 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
4.50 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
359 B lrw-r--r-- 2026-02-14 19:19:14
Edit Download
362 B lrw-r--r-- 2026-02-14 19:19:14
Edit Download
360 B lrw-r--r-- 2026-02-14 19:19:14
Edit Download
3.99 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
3.90 KB lrw-r--r-- 2026-02-14 19:19:14
Edit Download
1.78 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
416 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
422 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
440 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
425 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
462 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
464 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
431 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
501 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
468 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
3.89 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
1.63 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
2.18 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
1.14 KB lrw-r--r-- 2026-02-14 19:19:12
Edit Download
9.20 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
2.07 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
2.28 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
1.43 KB lrw-r--r-- 2026-02-14 19:19:16
Edit Download
893 B lrw-r--r-- 2026-02-14 19:19:16
Edit Download
1.30 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
719 B lrw-r--r-- 2026-02-14 19:19:26
Edit Download
1.24 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
1.09 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
918 B lrw-r--r-- 2026-02-14 19:19:18
Edit Download
554 B lrw-r--r-- 2026-02-14 19:19:18
Edit Download
411 B lrw-r--r-- 2026-02-14 19:19:18
Edit Download
1.08 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
4.45 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
6.56 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
6.52 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
3.49 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
6.30 KB lrw-r--r-- 2026-02-14 19:19:26
Edit Download
9.17 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
3.97 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
10.40 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
1.87 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
5.41 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
2.21 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
13.15 KB lrw-r--r-- 2026-02-14 19:19:18
Edit Download
24.29 KB lrw-r--r-- 2026-02-14 19:19:26
Edit Download
8.68 KB lrw-r--r-- 2026-02-14 19:19:26
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).