migratetoflarum/old-passwords

即时重新散列旧平台上的密码

安装次数: 2,626

依赖项: 1

建议者: 0

安全: 0

星标: 8

关注者: 2

分支: 4

开放问题: 1

类型:flarum-extension

1.0.0 2021-05-28 15:15 UTC

This package is auto-updated.

Last update: 2024-08-28 22:51:05 UTC


README

Build status MIT license Latest Stable Version Total Downloads Donate

此扩展允许用户继续使用先前平台(使用与Flarum不同的散列算法)的密码进行登录。

安装

composer require migratetoflarum/old-passwords

更新

composer update migratetoflarum/old-passwords
php flarum migrate
php flarum cache:clear

文档

此扩展旨在与迁移脚本一起使用。没有从UI可访问的设置(您仍然需要启用扩展才能使其工作!)

迁移会在您的 users 表中添加一个 migratetoflarum_old_password 列,该列可以包含使用与bcrypt不同的算法散列的旧凭据。

此列必须包含一个有效的JSON序列化对象,如以下所述,或者为 null 以不提供旧密码。

一旦通过旧密码正确识别了用户,密码将以bcrypt重新散列,存储在Flarum的 password 字段中,并将 migratetoflarum_old_password 列设置为 null

如果您在数据库中为某个用户同时拥有bcrypt散列的 passwordmigratetoflarum_old_password 值,则用户可以使用任一密码登录。使用的密码将覆盖 password 的值,并将 migratetoflarum_old_password 设置为 null

兼容的散列方法

不要犹豫,提出一个issue或PR以建议新的散列方法。很快会有更多添加。

虽然其中一些选项可能适合测试目的或其他恶作剧,但有些可能会在数据泄露的情况下使旧密码的用户面临风险。这些选项带有 /!\ 不安全 标签。就像整个扩展一样,请自行承担使用风险!

纯文本

/!\ 不安全:您可以直接使用bcrypt对明文密码进行盐化和散列,并将其存储在 password 中。

示例

{"type":"plain","password":"correcthorsebatterystaple"}

Bcrypt

在这里存储bcrypt散列而不是 password 列可能没有意义,但这是可能的。

示例(密码 = bcrypt(correcthorsebatterystaple)

{"type":"bcrypt","password":"$2y$10$pUdywYeC2WZxZROQK0SPIu7x58OdO/aLxKnHRlfB8lni0aS6EEWdu"}

Phpass

读取由Phpass创建的可移植和bcrypt散列。

要使用此类型,您需要安装 hautelook/phpass

composer require hautelook/phpass:^1.1

示例(密码 = portablehash(correcthorsebatterystaple)

{"type":"phpass","password":"$P$Bdjwj4JGIZcMz02HOu69ULVYMPOMK5."}

MD5

/!\ 不安全:带有或不带有盐的MD5仍然很弱。请考虑使用下面的 md5-bcrypt 选项。

示例(密码 = md5(correcthorsebatterystaple)

{"type":"md5","password":"e9f5bd2bae1c70770ff8c6e6cf2d7b76"}

示例(密码 = md5(12345678correcthorsebatterystaple)

{"type":"md5","password":"eefda52fc6b3747b14b563cef9c95062","salt-before":"12345678"}

示例(密码 = md5(correcthorsebatterystaple12345678)

{"type":"md5","password":"72d4f016727f69dcfb736fee65b079c8","salt-after":"12345678"}

MD5-Bcrypt

这是导入MD5散列的首选方法。您必须对每个旧的MD5密码散列运行bcrypt,并将结果值存储在Flarum中。

示例(密码 = bcrypt(md5(correcthorsebatterystaple))

{"type":"md5-bcrypt","password":"$2y$10$WTM5g/fgvJULmERFBpuv1.zqupDwav0/orAot5gWTpZ0xSCkW6tkq"}

示例(密码 = bcrypt(md5(12345678correcthorsebatterystaple))

{"type":"md5-bcrypt","password":"$2y$10$WTM5g/fgvJULmERFBpuv1.zqupDwav0/orAot5gWTpZ0xSCkW6tkq","salt-before":"12345678"}

您可以使用与MD5相同的盐。

MD5-Double

/!\ 不安全:请考虑使用下面的 md5-double-bcrypt 选项。

与MD5相同,但在添加盐之前先对密码进行散列。

示例(密码 = md5(12345678 + md5(correcthorsebatterystaple))

{"type":"md5-double","password":"75ed2cf45b78dfaa65915d83b73cee9b","salt-before":"12345678"}

您可以使用与MD5相同的盐。

MD5-Double-Bcrypt

与MD5-Double相同,但添加了一个额外的bcrypt层。

示例(密码 = bcrypt(md5(12345678 + md5(correcthorsebatterystaple)))

{"type":"md5-double-bcrypt","password":"$2y$10$aws79gtmfZzV8/ikoJSCyuIVLDKlStBRvNDdJqAr1r6k4ZYjZmcC2","salt-before":"12345678"}

SHA1

/!\ 不安全:无论是否有盐,SHA1都保持较弱。请考虑使用以下 sha1-bcrypt 选项。

示例(密码 = sha1(correcthorsebatterystaple)

{"type":"sha1","password":"bfd3617727eab0e800e62a776c76381defbc4145"}

您可以使用与MD5相同的盐。

SHA1-Bcrypt

这是导入SHA1散列的首选方法。您必须运行每个旧的SHA1密码散列通过bcrypt,并将结果值存储在Flarum中。

示例(密码 = bcrypt(sha1(correcthorsebatterystaple))

{"type":"sha1-bcrypt","password":"$2y$10$b.K9J5Cc7FBJxtuy/hL/vuypT/2vn5jM42M6vpCFIKBfz9n.HAG2a"}

您可以使用与MD5相同的盐。

SHA1-Double

/!\ 不安全:请考虑使用以下 sha1-double-bcrypt 选项。

与sha1的md5-double相同。

示例(密码 = sha1(12345678 + sha1(correcthorsebatterystaple))

{"type":"sha1-double","password":"7e7247394d9283ce8b0cf6f862eae667668f1489","salt-before":"12345678"}

SHA1-Double-Bcrypt

与sha1的md5-double-bcrypt相同。

示例(密码 = bcrypt(sha1(12345678 + sha1(correcthorsebatterystaple)))

{"type":"sha1-double-bcrypt","password":"$2y$10$vtO9973AbQKq2vb9c0zH/OZxUNNagPxrZydMpQelU4L07BJG1Z8cm","salt-before":"12345678"}

KMD5

Unclassified NewsBoard使用的基于MD5的散列。

示例(密码 = first16bytes(md5(correcthorsebatterystaple)) + 12 + last16bytes(md5(correcthorsebatterystaple))

{"type":"kmd5","password":"caecd5d8c1e3fd9212c2c1cb348fedaed1"}

A MigrateToFlarum 扩展

这是MigrateToFlarum(一个即将推出的在线论坛迁移工具)提供的一个免费扩展。关注我们的Twitter以获取更新 https://twitter.com/MigrateToFlarum

需要自定义Flarum扩展? 联系Clark Winkelmann!

链接