Decrypt Password Created by crypto.pbkdf2 Object
encryption, javascript, node.js
Solution
PBKDF2 is a one-way hashing algorithm. It's not possible to decrypt the generated hash. You can read more about this here.
A one way hash performs a bunch of mathematical operations that transform input into a (mostly) unique output, called a digest. Because these operations are one way, you cannot ‘decrypt’ the output- you can’t turn a digest into the original input.
If you want to use PBKDF2 to store and compare passwords, you might be interested in the `pbkdf2` library. It makes generation and comparison of passwords easy:
var pbkdf2 = require('pbkdf2');
var p = 'password';
var s = pbkdf2.generateSaltSync(32);
var pwd = pbkdf2.hashSync(p, s, 1, 20, 'sha256');
var bool = pbkdf2.compareSync(pwd, p, s, 1, 20, 'sha256');
Problem
I have the following code in javascript, running on NodeJs: ``` encryptPassword: function(password) { if (!password || !this.salt) return ''; var salt = new Buffer(this.salt, 'base64'); return crypto.pbkdf2Sync(password, salt, 10000, 64).toString('base64'); } ``` How can I implement the decrypt function? It can be in java or in javascript. Thx!