How to use the crypto-js.PBKDF2 function in crypto-js

To help you get started, we’ve selected a few crypto-js examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github nemtech / nem2-sdk-typescript-javascript / test / core / crypto / crypto.spec.ts View on Github external
it('Can encrypt and decrypt private key for mobile', () => {
        // Arrange:
        const privateKey = '2a91e1d5c110a8d0105aad4683f962c2a56663a3cad46666b16d243174673d90';
        const password = 'TestTest';

        // Act:
        const result = Crypto.toMobileKey(password, privateKey);
        const encrypted = result.encrypted;
        const salt = CryptoJS.enc.Hex.parse(result.salt);

        const key = CryptoJS.PBKDF2(password, salt, {
            keySize: 256 / 32,
            iterations: 2000,
        });

        const iv = encrypted.substring(0, 32);
        const encryptedPrvKey = encrypted.substring(32, 128);

        const obj = {
            ciphertext: CryptoJS.enc.Hex.parse(encryptedPrvKey),
            iv: convert.hexToUint8(iv),
            key: convert.hexToUint8(key.toString()),
        };

        const decrypted = Crypto.decrypt(obj);

        // Assert:
github internxt / X-Cloud-Mobile / src / helpers / utils.js View on Github external
function passToHash(passObject) {
  console.log('# passToHash')
  try {
    const salt = passObject.salt ? CryptoJS.enc.Hex.parse(passObject.salt) : CryptoJS.lib.WordArray.random(128 / 8);
    const hash = CryptoJS.PBKDF2(passObject.password, salt, { keySize: 256 / 32, iterations: 10000 });
    const hashedObjetc = {
      salt: salt.toString(),
      hash: hash.toString()
    }
    return hashedObjetc;
  } catch (error) {
    console.log('Error in pass to hash')
    throw new Error(error);
  }
}
github Aam-Digital / ndb-core / src / app / user / user.ts View on Github external
private hashPassword(givenPassword: string): string {
    const options = {
      keySize: this.password.keysize,
      iterations: this.password.iterations
    };
    return CryptoJS.PBKDF2(givenPassword, this.password.salt, options).toString();
  }
github eosrio / simpleos / src / app / services / crypto.service.js View on Github external
CryptoService.prototype.unlock = function (pin, target) {
        var saved_hash = localStorage.getItem('simpleos-hash');
        var salt = JSON.parse(localStorage.getItem('simpleos-salt'));
        var hash = CryptoJS.PBKDF2(pin, salt, { keySize: 512 / 32, iterations: 1000 }).toString();
        if (hash === saved_hash) {
            this.locked = false;
            this.router.navigate(target).catch(function () {
                alert('cannot navigate :(');
            });
            return true;
        }
        else {
            this.locked = true;
            return false;
        }
    };
    CryptoService.prototype.storeLedgerAccount = function (pbk, slotNumber) {
github kolton / d2bot-with-kolbot / httpd / public / libs / D2Bot.js View on Github external
function decrypt(transitmessage, pass) {
            var keySize = 256;
            var ivSize = 128;
            var saltSize = 256;
            var iterations = 1000;            
            var hexResult = base64ToHex(transitmessage)
            var salt = CryptoJS.enc.Hex.parse(hexResult.substr(0, 64));
            var iv = CryptoJS.enc.Hex.parse(hexResult.substr(64, 32));
            var encrypted = hexToBase64(hexResult.substring(96));
            var key = CryptoJS.PBKDF2(pass, salt, {
                keySize: keySize / 32,
                iterations: iterations
            });
            var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
                iv: iv,
                padding: CryptoJS.pad.Pkcs7,
                mode: CryptoJS.mode.CBC
            });
            return decrypted.toString(CryptoJS.enc.Utf8);
        }
github crossbario / autobahn-js / packages / autobahn / lib / auth / cra.js View on Github external
function derive_key (secret, salt, iterations, keylen) {
   var iterations = iterations || 1000;
   var keylen = keylen || 32;
   var config = {
      keySize: keylen / 4,
      iterations: iterations,
      hasher: crypto.algo.SHA256
   }
   var key = crypto.PBKDF2(secret, salt, config);
   return key.toString(crypto.enc.Base64);
}
github danang-id / simple-crypto-js / src / SimpleCrypto.js View on Github external
SimpleCrypto.prototype.encrypt = function (data) {
        if (data == void 0)
            throw new Error('No data was attached to be encrypted. Encryption halted.');
        var string = typeof data == "object" ? JSON.stringify(data) : typeof data == "string" || typeof data == "number" || typeof data == 'boolean' ? data.toString() : null;
        if (null === string)
            throw new Error('Only object, string, number and boolean data types that can be encrypted.');
        var salt = SimpleCrypto.generateRandom(128, true);
        var key = CryptoJS.PBKDF2(this._secret, salt, {
            keySize: this._keySize / 32,
            iterations: this._iterations
        });
        var initialVector = SimpleCrypto.generateRandom(128, true);
        var encrypted = CryptoJS.AES.encrypt(string, key, {
            iv: initialVector,
            padding: CryptoJS.pad.Pkcs7,
            mode: CryptoJS.mode.CBC
        });
        var ciphered = salt.toString() + initialVector.toString() + encrypted.toString();
        return ciphered;
    };
    SimpleCrypto.prototype.decrypt = function (ciphered, expectsObject, enc) {