mysql - MySQL 和 MariaDB 之间密码散列的差异

标签 mysql database encryption passwords mariadb

我有两台服务器,Host1 和 Host2。 Host1 正在运行 MySQL(服务器版本:5.0.77-日志源分发),Host2 正在运行(服务器版本:5.5.56-MariaDB MariaDB Server)。

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

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

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

最佳答案

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

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

https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html

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

关于mysql - MySQL 和 MariaDB 之间密码散列的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49300674/

相关文章:

sql - 在父表和子表之间引入一个新表

ios - 使用加密的 CoreData 实现时是否需要 shm 和 wal 文件?

java - JDK RSACore.priCrypt 如何工作以及 getBlindingRandomPair 是什么意思?

android - Android中从一个应用程序向另一个应用程序发送数据时的加密

PHP:似乎无法使用 MySQL 查询日期

mysql - 从一个表中选择多行,而另一表的计数为

php - 将日期范围拆分为相应的周

php - bind_param 不工作(在非对象上)mysqli 准备语句

mysql - 使用 Sqoop 创建/导入 Hive 表

mysql - 我应该把它分成一个字段还是mysql中的多个字段?