"use strict"
// run with
// firebase auth:import 15000.csv --hash-algo="PBKDF2_SHA256" --rounds=15000
// firebase auth:import 12000.csv --hash-algo="PBKDF2_SHA256" --rounds=12000
// firebase auth:import md5.csv --hash-algo="MD5" --rounds=5000
var _ = require("lodash")
var fs = require('fs');
let csv = require('csv')
let moment = require('moment')
var parse = csv.parse
let stringer = csv.stringify
let pbkdf2_sha256_15000 = []
let pbkdf2_sha256_12000 = []
let md5 = []
var parser = parse({ columns: true, delimiter: ',' }, function (err, data) {
console.log(data.length);
console.log(data[0])
_.map(data, ele => {
let temp = ele.bighash.split('$')
ele.last_login = +moment(ele.last_login).toDate()
ele.created = +moment(ele.created).toDate()
ele.email_verified = 'true'
if (ele.bighash.indexOf('15000') !== -1) {
ele.hash = ele.bighash.split('pbkdf2_sha256$15000$')[1]
ele.hash = temp[3]
if(typeof temp[2]==="string")
ele.salt = new Buffer(temp[2]).toString('base64')
else{
ele.salt = "derp"
console.log("failed ele",ele)
}
pbkdf2_sha256_15000.push(ele)
} else if (ele.bighash.indexOf('12000') !== -1) {
ele.hash = temp[3]
ele.salt = new Buffer(temp[2]).toString('base64')
pbkdf2_sha256_12000.push(ele)
} else {
//md5
ele.hash = ele.bighash
md5.push(ele)
}
})
stringer(pbkdf2_sha256_12000, (err, data) => {
fs.writeFile(__dirname + '/12000.csv', data, function (err) {
if (err) {
return console.log(err);
}
console.log("12000 was saved!");
});
})
stringer(pbkdf2_sha256_15000, (err, data) => {
fs.writeFile(__dirname + '/15000.csv', data, function (err) {
if (err) {
return console.log(err);
}
console.log("15000 was saved!");
});
})
stringer(md5, (err, data) => {
fs.writeFile(__dirname + '/md5.csv', data, function (err) {
if (err) {
return console.log(err);
}
console.log("md5 was saved!");
});
})
});
fs.createReadStream(__dirname + '/account.csv').pipe(parser);