fab*_*rik 2 password debian mysql
由于硬件问题,我需要将许多虚拟用户迁移到新机器上。他们的密码存储在 MySQL 中ENCRYPT,crypt()最终使用哪个加密。
也许这是我的错,但salt 在存储密码时没有添加,所以它们是完全随机的。我的基本想法是转储数据库然后导入它。当我尝试将相同的字符串存储在同一台机器中时,ENCRYPT它给了我不同的结果。用户的密码在新机器上有效吗?
更新环境和加密方法:
ENCRYPT感谢您的反馈,fabrik
从提供的链接到 ENCRYPT()
如果没有给出 salt 参数,则使用随机值。
salt是一个2字符的字符串,保存在密文的开头。例如,使用 salt='df' 加密字符串,'df' 位于输出产品的开头。
mysql> SELECT ENCRYPT('hello','df');
+-----------------------+
| ENCRYPT('hello','df') |
+-----------------------+
| dfbVa429UeC0U |
+-----------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
另一个例子,没有 salt
mysql> SELECT ENCRYPT('hello');
+------------------+
| ENCRYPT('hello') |
+------------------+
| oBSydDfeNx5ug |
+------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
现在使用前一个字符串的前两个字符作为 salt
mysql> SELECT ENCRYPT('hello','oB');
+-----------------------+
| ENCRYPT('hello','oB') |
+-----------------------+
| oBSydDfeNx5ug |
+-----------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
相同的输出。
您很可能不会遇到问题,但为了 100% 确定(crypt 实现是相同的),在旧机器上创建一个测试帐户并将其迁移到新机器。检查密码是否适用于他们两个。
编辑:
salt是总是存储在口令的加密字符串的第一个字母。有NO WAY salt丢失,没有salt用户将无法登录你的旧机器摆在首位。您不需要(也不应该)知道任何密码。
如果您要从 etch 迁移到 Squeeze,最明智的方法是使用 Debian Squeeze 设置测试服务器。你不需要硬件来做到这一点,例如设置一个 VirtualBox 来宾。然后在你的旧机器上新建一个用户,把他的账号迁移到测试机上。如果密码对两台机器都有效,那么您就可以开始使用了,这是确保 99.9% 确定的唯一方法。无论如何,测试迁移是必须的,您应该担心它们中出现的更多问题。
| 归档时间: |
|
| 查看次数: |
702 次 |
| 最近记录: |