我正在将网站从WordPress迁移到新的从头开始的网站,并希望转移我的用户。显然我希望他们能够使用相同的密码,但如果他们被迫重置,它不是最坏的情况(小基数)。
话虽这么说,我可以看到WordPress哈希像这样$P$BlrNllYDPRevuGVlULvvKzRgLVC3k91
的密码,根据这个question他们使用 Portable PHP password hashing framework。
我使用带有password_hash
和password_verfiy
的PHP 7构建了自己的用户系统。我想知道我是否有可能维持当前的用户密码?
答案 0 :(得分:1)
肯定是可能的,但您需要添加一些逻辑来使用PHPass检查旧密码哈希值。 void ClassForm_Load(object sender, EventArgs e)
{
datagridview1.CellMouseDown -= MouseClick;
datagridview1.CellMouseDown += MouseClick;
}
void MouseClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = sender as DataGridView;
if(dgv == null) return;
DataGridViewButtonCell b = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex] as DataGridViewButtonCell;
if (b != null)
{
MyPopupTreeWindow myPopupTreeWindow = new MyPopupTreeWindow(optional information from button);
myPopupTreeWindow.ShowDialog();
string userSelectedString = myPopupTreeWindow.userSelectedString;
datagridview1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = userSelectedString;
}
}
函数无法神奇地验证其他格式的哈希值。
检查哈希是否以password_verify
开头(PHPass使用此前缀)。如果是,请使用PHPass中的验证方法。否则,请使用原生$P$
。
此外,您需要在成功登录时更新用户的存储哈希值,以将其升级到新的更好的哈希系统。
答案 1 :(得分:0)
您还可以导出暂存“用户表”,然后将其导入新迁移的网站的数据库。像这样,每个用户都可以使用与以前相同的密码。