· 7 years ago · Jun 10, 2018, 03:14 PM
1crypto.randomBytes(32, function(err, salt) {
2 crypto.randomBytes(32, function(err, secretKey) {
3 crypto.pbkdf2(password, salt, 100000, 32, "sha512", (err, derivedKey) => {
4 var a = derivedKey;
5 var b = secretKey;
6
7 if (!Buffer.isBuffer(a)) a = new Buffer(a)
8 if (!Buffer.isBuffer(b)) b = new Buffer(b)
9 var res = []
10 if (a.length > b.length) {
11 for (var i = 0; i < b.length; i++) {
12 res.push(a[i] ^ b[i])
13 }
14 } else {
15 for (var i = 0; i < a.length; i++) {
16 res.push(a[i] ^ b[i])
17 }
18 }
19
20 var aes256Key = new Buffer(res).toString('hex');
21 });
22 });
23});