MySQL MD5哈希到base64

时间:2013-08-07 19:53:06

标签: mysql sql base64 md5

我有一个mysql数据库,用于存储我的所有用户信息(用户名,密码等)。我正在使用back-sql构建一个LDAP服务器,除密码字段外,一切正常。所有密码都是基本的MD5哈希所以

select MD5('testPass01')

返回

428a65ed9de7dbf8ef7d08f884528440

显然,这是二进制值的hexpair表示。 LDAP将理解base64编码的字符串,就像这样

{MD5}Qopl7Z3n2/jvfQj4hFKEQA==

我找到了一个执行转换的perl脚本

#!/usr/bin/perl
use MIME::Base64;
use strict;
my @md5 = split "",$ARGV[0];
my @res;
for (my $i = 0 ; $i < 32 ; $i+=2)
{
my $c = (((hex $md5[$i]) << 4) % 255) | (hex $md5[$i+1]);
$res[$i/2] = chr $c;
print $c;
}
print "{MD5}".encode_base64(join "", @res);
#-------------------------------------------#

我的问题是:是否可以通过存储过程使用SQL进行转换?我无法安装包含base64编码和解码功能的MySQL服务器5.6

由于

1 个答案:

答案 0 :(得分:2)

完美无缺。在这样的注释中使用该函数将生成LDAP将接受的base64密码。

select BASE64_ENCODE(unhex('mysql-md5-encoded-password')