Skip to content

Instantly share code, notes, and snippets.

@kmcnellis
Created September 15, 2017 20:03
Show Gist options
  • Save kmcnellis/a88f86a2fb889100a6e3fea91501b18f to your computer and use it in GitHub Desktop.
Save kmcnellis/a88f86a2fb889100a6e3fea91501b18f to your computer and use it in GitHub Desktop.
How to import users in Firebase using MD5 Hashing
var crypto = require('crypto');
var fs = require('fs');
var exec = require('child_process').exec;
var uploadCommand = "firebase auth:import users.json --hash-algo=MD5 --rounds=0";
var stringToBase64 = function(plaintext){
return new Buffer(plaintext).toString('base64');
}
var users = [
{
localId: "uid1",
email: "test@test.com",
emailVerified: true,
displayName: "Test",
password: "hellotest"
},
{
localId: "uid2",
email: "world@test.com",
emailVerified: true,
displayName: "World",
password: "helloworld"
}
];
for (var i = 0; i < users.length; i++){
var salt = crypto.randomBytes(128).toString('hex');
var hash = crypto.createHash('md5').update(salt+users[i].password).digest('hex');
users[i].passwordHash = stringToBase64(hash);
users[i].salt = stringToBase64(salt);
delete users[i].password;
}
const content = JSON.stringify({users:users});
fs.writeFile("users.json", content, 'utf8', function (err) {
if (err) {
return console.log(err);
}
console.log("The file was saved!");
console.log(uploadCommand)
exec(uploadCommand,
function(err, stdout, stderr) {
console.log(stdout);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment