我正在尝试将用户从Drupal 7迁移到node.js上的另一个项目。
我需要为所有这些密码保留现有密码。这意味着我需要以与Drupal相同的方式散列密码。
Drupal默认使用SHA512和salt。它们通过PHP的散列函数多次运行散列,以增加生成密码的最终散列(称为stretching的安全技术)的计算成本。
问题是,user_hash_password()进行散列,似乎非常习惯。我真的不想对它进行逆向工程并重新发明轮子。
问题是,node.js上是否有可以做到这一点的库?
答案 0 :(得分:0)
可以使用drupal-hash模块完成。
var drupalHash = require('drupal-hash');
var clearPassword = 'superpassword';
var passwordHash = '$S$DODRFsy.GX2iSkl2zJ4fsrGRt2S0FOWu0JSA3BqAmSayESbcY3w9';
var isValid = drupalHash.checkPassword(clearPassword, passwordHash);
// returns true or false
var drupalHash = require('drupal-hash');
var newPassword = 'superpassword';
var passwordHash = drupalHash.hashPassword(newPassword);
// returns something like '$S$DODRFsy.GX2iSkl2zJ4fsrGRt2S0FOWu0JSA3BqAmSayESbcY3w9'
var drupalHash = require('drupal-hash');
var passwordHash = '$P$DxTIL/YfZCdJtFYNh1Ef9ERbMBkuQ91';
var needsHash = drupalHash.needsNewHash(passwordHash);
// return true or false