AzerothCore 中的密码是如何加密的?和Trinitycore一样吗?

How are passwords encrypted in AzerothCore? Is it same as Trinitycore?

我正在尝试构建一个 Web 门户,它使用 SOAP RBAC (3.3.5a) 在 wow server门户网站

AzerothCore 使用什么加密?和Trinity一样吗?

我尝试使用其他 CMS 现有的 FusionGen 和 github 并查看登录和注册系统。他们都基于三位一体。

不过好像有点不一样。

感谢任何帮助

AzerothCore 使用与所有基于 MaNGOS 的游戏服务器相同的策略。所以,是的,它也与 TrinityCore 中的相同。

密码使用 SHA1 哈希函数加密,格式为:account:password 大写。

所以如果你的账号是squeeze,密码是azeroth,它会被加密到SHA1('SQEEZE:AZEROTH')

密码将存储在 acore_auth 数据库中 account table 的 sha_pass_hash 字段中。

SQL代码

SELECT SHA1(CONCAT(UPPER('your_username'), ':', UPPER('your_password')))

PHP代码

sha1(strtoupper($username).':'.strtoupper($password));

@hanshenrik 让我们慢下来。我同意这是一个可怕的密码存储方案,但出于不同的原因。 Salts 抵御预先计算的哈希攻击,因此如果攻击者能够破坏您的数据库,他无论如何都可以访问 salt,因此攻击描述它并不真正依赖于使用帐户作为 salt,即使我同意必须始终是一个真正唯一的、足够长的随机位序列(帐户名可以很短 public)。 这里真正的问题是 2:

1) SHA1 不再被认为是安全的 2) 使密码不敏感,减少可能的组合。

对于强化方案来说,即使是盐也能加密,让攻击者的日子更难过。

这里是关于密码的更多信息:

http://www.azerothcore.org/wiki/account#sha_pass_hash

在 AZerothCore 数据库(以及所有 Mangos 衍生产品)中,SHA1 仅用于在数据库中存储密码,但游戏客户端使用 SRP6 协议,需要服务器生成 v 和 s 密钥并发送给客户端。