【问题标题】:How do I decrypt and encrypt Joomla user password for Java program?如何解密和加密 Java 程序的 Joomla 用户密码?
【发布时间】:2013-06-12 11:14:24
【问题描述】:

我编写了一个可以访问我的 MySQL 数据库的 Java 程序。 目前我正在使用 Joomla 作为 CMS,因此我想编写我的 Java 程序,以便它能够检查(Joomla 的)用户数据以访问数据库。

如果不可能:我应该使用哪种加密,以便以后可以在我的网站上使用它?

现在我的程序只是比较用户字段和密码字段中的字符串是否与 MySQL 数据库中的数据。

我是加密/解密的新手。任何我应该如何处理这个主题的提示都值得赞赏。

提前致谢

问候

THE-E

【问题讨论】:

  • 您根本不应该加密密码。你应该单向散列它们。
  • 我会看看这个主题,一旦我对它有更多的了解就会回复。但是 Joomla 不使用单向哈希,是吗?目前的状态是。已经使用 Joomla 创建了用户,现在我必须检查用户名和用户密码才能访问该程序。
  • @THE-E:当然,密码是在 Joomla! 中散列的一种方式。其他一切都是不好的做法。您必须使用用户的个人盐对纯密码进行哈希处理,并将结果与​​数据库中存储的哈希值进行比较。

标签: java mysql database encryption joomla


【解决方案1】:

您不应该在数据库中看到任何纯文本密码。我不确定旧版本的 Joomla 是如何做到的,但当前的 Joomla 以以下格式保存密码:

md5([password][salt]):[salt]

显然,您应该将 [password] 替换为密码,将 [salt] 替换为 salt。例如,您可能会在用户表的密码字段中看到以下字符串

dc0ea62a2aebf85100609bb67c6886a8:yh9MbHU5hR6ydbd8mCw6bQzCrRFYEI3E

冒号之后的部分是盐,冒号之前的部分是密码的md5哈希盐。现在我可以告诉你这里的密码是'test'。并且该字符串是: md5(testyh9MbHU5hR6ydbd8mCw6bQzCrRFYEI3E):yh9MbHU5hR6ydbd8mCw6bQzCrRFYEI3E

【讨论】:

  • 不再在 Joomla 3.2.1 中工作。不再有“:”分隔加密密码和盐。
  • 是的,他们转而使用 bcrypt。我上面的回答适用于 3.2 之前的 Joomla 版本。
【解决方案2】:

本质上你想要做的事情如下。 当您存储密码时,请对其进行加密。 当用户在表单中输入密码时对其进行加密,并将其与数据库中的加密密码进行比较。

您不想做的,是解密存储的密码并将其与表单输入进行比较。

在 PHP 中我使用 Bcrypt。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-04-15
  • 2011-04-10
  • 2012-05-12
  • 1970-01-01
  • 2011-03-02
  • 2015-06-12
  • 2014-02-13
  • 1970-01-01
相关资源
最近更新 更多