如何在MySQL中生成MD5加密密码?

时间:2011-04-20 20:18:35

标签: mysql linux bash scripting passwords

我需要从提供的信息生成MD5密码。以下是我的MySQL数据库表;

sN | firstN | lastN   | countryN | dob        | emailID            | joinD      | uID     | passwd   |
------------------------------------------------------------------------------------------------------
1  | Roger  | Federer | German   | 1981-08-08 | rfederer@gmail.com | 2009-12-23 |40345689 | ???????? |
   |        |         |          |            |                    |            |         |          |

生成的密码应该是这样的:

<first two characters from lastN> + <dob month> + <dob day> + <last two digit from uID> + "=$"

在这种情况下;

Password : "Fe080889=$"
Encrypted Password : "d76c30608603f7bf0a07abb03c6a631f"

请有人帮我这个。我如何使用bash脚本执行此操作,还是有任何方法可以在MySQL中自行完成?

1 个答案:

答案 0 :(得分:4)

您可以在MySQL中执行此操作(具体取决于您的版本)。它具有内置的加密/校验和功能:

http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_md5

只需使用子字符串和日期解析函数的组合来连接所需的字段,并将字符串传递给MD5()

大致是:

SELECT MD5(CONCAT(LEFT(lastN, 2), MONTH(dob), DAY(dob), RIGHT(CAST(uID, CHAR), 2), '=$'))
FROM Table