【问题标题】:Can MD5 from a MySQL field be used in another MySQL db?可以在另一个 MySQL 数据库中使用来自 MySQL 字段的 MD5 吗?
【发布时间】:2013-07-11 22:24:29
【问题描述】:

我们有一个用 PHP/MySQL (Joomla 1.5) 编写的现有网站,其中用户的密码使用 MD5 存储在 TABLE 中。这个网站将被彻底改造,我想知道用户的密码是否可以简单地复制并在新的 MySQL TABLE 中重新创建并且仍然有效?即使在不同的系统上,MD5 用户的密码是否也可以移植到另一个 MySQL?还是 MySQL 上的 MD5 加密被其他因素改变了?谢谢!

【问题讨论】:

  • 如果 MD5 不可移植,那它就完全没用了:散列算法的全部意义在于它应该始终从相同的输入产生相同的值(无论平台如何); MD5 的缺点是它可以从太多不同的输入中产生相同的值
  • 如果您当前的系统使用盐来保护密码哈希,请确保您在新网站上使用相同的密钥/功能(无论您使用什么数据库或编程语言)。
  • 这是任何散列算法的“缺点”——甚至不是“太多”——有无限许多输入映射到给定的散列值。但是,MD5、SHA1 等算法的设计目的是使计算输入产生的哈希值变得困难。
  • @MarkBaker 我问是因为我记得在 UNIX /etc/password 文件密码是加密的,我被告知它不可移植。我想确保 MD5 是,否则必须要求该项目上的数千个现有用户登录重新创建他们的登录,并且如果没有必要,我不想给用户带来不便。
  • @Edward 通常被加密且不可移植的操作系统内容是因为它是使用机器/用户独有的公钥/私钥对加密的。在 Windows 上就是这样。但那是加密,这只是普通的散列。

标签: php mysql md5


【解决方案1】:

MD5 是可移植的,只要所有相关方(输入、盐和胡椒)都相同!

PS但请务必先备份 :)

【讨论】:

  • 是的,rsync 和 mysqldump 是我的朋友。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2011-05-11
相关资源
最近更新 更多