WordPress如何散列密码(wordpress怎么设置密码)

WordPress如何散列密码(wordpress怎么设置密码)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-02-22
文章简介

网站所有者喜欢WordPress。以至于大约40%的人选择它作为他们在线项目的基础。您可能会惊讶地发现,有些人不太了解世界上最流行的内容管理系统(CMS)的工作原理。也许更令人担忧的是,他们担心WP安

2025阿里云双十一服务器活动

网站所有者喜欢WordPress。以至于大约40%的人选择它作为他们在线项目的基础。您可能会惊讶地发现,有些人不太了解世界上最流行的内容管理系统(CMS)的工作原理。也许更令人担忧的是,他们担心WP安全性的某些方面,更具体地说,是散列用户密码的机制。让我们更详细地探索该领域,看看批评是否成立。

什么是哈希?

作为网站所有者,您有责任保护用户数据免受黑客攻击。存储他们的密码是其中的一个重要部分。想象一下,黑客设法突破了您的防御并窃取了您网站的数据库。这已经是一场噩梦,因为根据您提供的服务类型,您的数据库可能充满了敏感信息。

情况可能会变得更糟。如果您以纯文本形式存储用户密码,那么绝对没有什么可以阻止黑客利用它们。我们都知道人们在多个不同的帐户上重复使用相同的密码。如果犯罪分子决定针对其他在线服务尝试窃取的凭据,他们很有可能成功侵入。一次泄露可能导致大量数据泄露。

散列的目的是包含所有这些。散列是一种加密函数,可将文本转换为由字母和数字组成的乱码,称为散列。当用户选择密码时,Web应用程序将其通过散列函数传递,然后将生成的散列存储到数据库中。

下次用户尝试登录时,他们输入的密码会通过相同的机制,并将哈希值与存储在数据库中的内容进行比较。如果匹配,则系统允许用户进入。如果不匹配,则网站返回错误。

有一些在线生成器可以说明WordPress密码哈希的样子。下面你可以根据CodeBeautify的生成器看到“Password123!#”的哈希值。散列的关键在于它是一种单向函数。理论上,应该不可能逆转该过程并从哈希中导出纯文本密码。

通常情况下,理论和现实并不匹配。有许多不同的散列算法,其中一些提供比其他更好的安全性。随着硬件的发展,黑客的蛮力攻击变得越来越强大,我们已经到了只有少数算法被认为足以正确保护用户密码的地步。

您可能需要一些帮助才能了解某些散列机制比其他机制强多少。为了说明差异,像JeremiGosney这样的专家经常模拟针对流行散列算法的各种攻击,并在专门用于密码安全的活动中分享结果。

2012年,Gosney使用一组GPU对几种哈希算法的简单实现发起暴力攻击。我们现在将总结三种最流行的机制的结果。在对MD5算法的攻击中,Gosney每秒进行了1800亿次猜测。有了这个,他将在九个多小时内成功猜出所有可能的8个字符的密码。

在攻击SHA1时,Gosney每秒进行大约610亿次猜测,这将使他能够在大约27小时内成功猜出所有8个字符的密码。

在攻击bcrypt时,他每秒只能进行71000次猜测,这意味着他需要2700年才能成功猜出所有可能的8个字符的密码。

上面的数字是用现在大约十年前的GPU记录的。现代硬件功能更强大,可以实现更快的蛮力攻击。Gosney的结果在说明MD5和bcrypt等算法之间的差异方面一如既往地出色。你会认为世界上最受欢迎的CMSWordPress会使用一种更难破解的算法。你可能会大吃一惊。

WordPress使用什么类型的散列?

WordPress最初有一个简单的MD5散列算法实现。与许多竞争对手相比,MD5有一个明显的优势——速度非常快。即使早在2007年,针对MD5哈希的碰撞攻击在普通PC上花费的时间也不超过几秒钟。不用说,当时WP的开发团队因使用该算法而获得了很多支持。

WordPress2.5于2008年发布,附带PHPass(发音为PH-Pass)。PHPass是一个散列框架,支持多种散列算法,包括MD5和bcrypt。正如我们在上一节中建立的,bcrypt比MD5强大得多,并且被广泛认为是PHP应用程序的最佳哈希算法。

WordPress如何散列密码,wordpress怎么设置密码

PHPass在散列之前为每个密码添加加密盐。盐是在使用散列机制之前附加到纯文本密码的唯一数据。多亏了它,相同的密码不会产生相同的哈希值,并且黑客很难猜测用户选择的密码是什么。此外,PHPass进行了八次基于MD5的散列,并采用密钥和密码拉伸技术进一步保护凭据。由于这一切,对WordPress散列机制的暴力攻击是不切实际的。目前,就是这样。

为什么WordPress继续使用MD5?

稍微倒带一下,您会发现在PHP项目中实现一个强大的散列算法并不完全是在公园里散步。PHP5.5引入了对bcrypt的官方支持,具有用于哈希密码和在登录尝试期间验证它们的本机函数。WordPress的散列机制目前确实提供了足够的安全性。尽管如此,许多人仍然认为,鉴于可以在没有太多麻烦的情况下实施的更强大的算法的可用性,保持原样是没有意义的。

WordPress的开发团队似乎奇怪地不愿意对核心的这个特定部分进行任何更改。这样做的原因是向后兼容。WordPress保持其受欢迎程度并继续扩大其市场份额,不仅因为它的用途广泛且易于使用,而且因为它几乎可以在任何托管平台上运行。太多的人使用遗留系统来构建新项目,并且许多现有的网站在非常过时的托管环境中运行。

旧软件使这些项目成为黑客的避风港,因此WP的散列机制可能是他们最不担心的问题,特别是考虑到它提供的良好安全性。CMS的开发人员知道更改散列机制可能会影响很多项目,他们不愿意这样做。

这是“如果它没有损坏,就不要修复它”策略的例证,您必须同意,特别是考虑到可能受到影响的人数众多,其背后有一些逻辑。许多网站所有者认为安全是组织项目各个方面的最高优先级。对他们来说,使用基于像MD5这样弱的算法的散列机制还不够好。对他们来说幸运的是,还有其他选择。

使用插件更改WordPress网站的哈希算法

得益于WP的模块化架构,您可以轻松更改网站的密码存储系统。在WP的官方插件目录中搜索“bcrypt”,你会发现相当多的匹配项。安装它们是一个标准的、两次点击的工作,而且几乎所有人都承诺从MD5切换到bcrypt而不告诉所有用户重置他们的密码。Roots.io是一家创建各种WordPress开发工具的公司,也有一个插件可以让您使用bcrypt。但是官方目录上没有,所以安装过程不一样。让我们按照步骤操作。

1.从GitHub下载插件。

Roots的插件可在此处获得。要下载它,请单击代码,然后选择下载ZIP。在您的计算机上保存文件后,您需要解压缩存档。

2.在wp-content文件夹中创建一个新目录。

Roots创建的插件需要在“wp-content”目录下创建一个名为“mu-plugins”的文件夹。您可以通过SSH、网络托管控制面板中的文件管理器或您最喜欢的FTP客户端来完成。

3.上传wp-password-bcrypt.php文件。

要安装和激活插件,请将“wp-password-bcrypt.php”文件上传到“mu-plugins”文件夹。

注意:您不需要上传存档的全部内容。只需要PHP文件。

该插件将出现在必须使用选项卡下的插件>已安装插件菜单中。因为Roots.io的插件是所谓的必备插件之一,它会在安装时自动激活,用户无法从WordPress仪表板停用它。摆脱它的唯一方法是将它从mu-plugins目录中删除,因此如果多个人可以访问WP仪表板并且您想确保他们不会干预网站的内容,那么使用它是一个好主意密码哈希机制。

所有bcryptWP插件都在后台运行,你不能期待任何不同的特性或功能。插件解决问题的方式有所不同。一些使用原生PHP函数来散列和验证密码,而另一些则重新配置PHPass框架以使用bcrypt而不是MD5。在所有情况下,您都需要PHP5.5或更新版本,无论如何您都应该使用它。插件的选择取决于个人喜好。如果它们在您看来都一样,请务必阅读评论并了解使用它们的人的想法。

尽管WP的密码存储系统不是基于当前可用的最安全的哈希算法,但不会对您的网站及其访问者的安全造成直接威胁。WP的模块化架构和使项目保持活力的全球社区意味着您只需单击几下鼠标就可以使用更复杂的密码哈希算法。说相同的架构和社区使WordPress成为世界上最流行的网站建设应用程序,你不会错。

标签:
机器人的运作原理(机器人控制器)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!