当前位置: 首页 > 知识库问答 >
问题:

MySQL和MariaDB在密码散列方面的差异

师俊健
2023-03-14

我有两台服务器,Host1和Host2。Host1正在运行MySQL(服务器版本:5.0.77-log Source distribution),Host2正在运行(服务器版本为:5.5.56-MariaDB MariaDB Server)。

我想将密码从主机1复制到主机2,但不确定MySQL上的哈希使用是否与MariaDB相同。作为测试,我在两个盒子上创建了一个测试用户,并将密码设置为“密码”并查看了它们各自的哈希值,输出如下:

主机1:7CA5A808FD8ABA5A611721BFC681BF3B主机2:5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

我已经查看了MySQL和MariaDB的留档,但找不到它们都使用的默认加密方法。是MD5、SHA1等,任何帮助都很好。

共有1个答案

龙骏
2023-03-14

据我所知,MariaDB和MySQL目前使用相同的密码哈希。检查

https://mariadb.com/kb/en/library/password/

https://dev . MySQL . com/doc/ref man/5.7/en/password-hashing . html

但是据我所知,第一个密码看起来是由旧的MySQL版本密码散列算法产生的(可以通过OLD_PASSWORD()获得)。所以如果你的MySQL服务器使用了新的密码散列算法,你可以从mysql.user中复制值,但是因为这不是你的情况,你必须手动更改你想要迁移的用户的密码。

 类似资料:
  • 我正在处理一个pet项目,现在我想添加用户注册支持。经过一些研究,我决定在数据库中保存哈希密码和salt,而不是原始密码。然而,我不知道这些步骤是什么,顺序是什么。以下是我的假设: 注册 客户端向服务器发送用户名和密码(https) 服务器获取密码,生成随机salt Base64对盐进行编码 用stringify salt散列密码 Base64对密码进行编码 将密码和salt保存到数据库中 登录

  • 问题内容: 我需要对密码进行哈希处理以存储在数据库中。如何用Java做到这一点? 我希望使用纯文本密码,添加随机盐,然后将盐和哈希密码存储在数据库中。 然后,当用户想要登录时,我可以使用其提交的密码,从其帐户信息中添加随机盐,对其进行哈希处理,然后查看其是否等同于其帐户信息所存储的哈希密码。 问题答案: 实际上,你可以使用Java运行时内置的工具来执行此操作。Java 6中的SunJCE支持PBK

  • 问题内容: 我在由.NET生成的数据库中存储SHA256用户密码哈希,我需要能够使用Node.js进行检查。唯一的问题是.NET和Node.js为相同的密码创建不同的哈希。 。净: Node.js(使用加密): 我找到了,但是无法弄清楚如何实施他的解决方案。 问题答案: 编辑:您正在C#中使用UTF-16,必须在两种语言中使用相同的编码: Node.js: C#:

  • 我一直在阅读OWASP10,我遇到了存储信息的最佳实践。咸杂碎。在这里,您为每个密码生成一个随机的salt,并对其进行梳理、散列和存储。我的疑问是,如果salt是随机生成的,当用户键入密码时,如何对密码进行身份验证?salt是否与用户名一起保存?如果是这样,这种做法仍然是脆弱的。或者他们是怎么做到的?

  • 我正在尝试将用户从旧的Drupal6 CMS迁移到KeyCloak。我想迁移用户与他们的旧密码,然后分配一个“更新密码”要求的行动到他们的个人资料。 然而,迁移密码似乎有问题,因为我只能以散列形式访问它们。 null 有没有人有幸让这个功能发挥作用?

  • 我正在研究一个已经用MD5(没有salt)散列用户密码的系统。我想使用SHA-512和SALT更安全地存储密码。 虽然这对于将来的密码来说很容易实现,但我也想修改现有的MD5散列密码,最好不强迫所有用户更改他们的密码。我的想法是只使用SHA-512和一个适当的salt来散列现有的MD5散列。然后,我可以在数据库中设置一些标志,指示哪些密码是从纯文本散列出来的,哪些密码是从MD5散列出来的。或者我可