如何获得符合{MD5}+base64编码的md5密码串?
来源:互联网 发布:沃卓斯基兄弟 知乎 编辑:程序博客网 时间:2024/05/16 10:06
如何获得符合{MD5}+base64编码的md5密码串?
courier-authlib的auth_generic手册里提到crypted密码的格式支持3类:
1)传统的crypted 的密码,如crypt()或md5-salted的密码
2){MD5}为前缀,后面是base64编码后的md5密码
3){SHA}为前缀(实际还支持{SAH256},这个看source知道)后面是base64编码的sha密码
如何能实现2呢?在目前的extmail/extman实现里,md5密码只支持以16进制形式存在的密码,例如:经过base64编码后依然无法通过authlib的认证,后来仔细看Digest::MD5手册里的介绍,发现md5函数返回的是二进制的、产度为16个字节的密文,而md5_hex(也就是目前extmail/extman使用的)是其16进制的形式(长度32个字节)。
于是测试用md5函数产生md5密文并用base64编码后,加上{MD5}前缀,塞到mysql里,发现通过了authtest的测试!再查看了一下courier-authlib的checkpasswd.c及checkpasswdmd5.c和md5目录下的md5加密函数,证实了就是校验二进制+base64编码后的md5密文,而不是hex后的密文。
问题是如何从hex格式的密文转成binary格式?很多用户从其他系统转到ext*下时,密码大多是md5 hex格式的,于是编写如下代码实现转换:这样常规的md5密文就被转成符合要求的{MD5}XXXXX格式了。刚才这个脚本的执行结果:
1)传统的crypted 的密码,如crypt()或md5-salted的密码
2){MD5}为前缀,后面是base64编码后的md5密码
3){SHA}为前缀(实际还支持{SAH256},这个看source知道)后面是base64编码的sha密码
如何能实现2呢?在目前的extmail/extman实现里,md5密码只支持以16进制形式存在的密码,例如:
引用:
d41d8cd98f00b204e9800998ecf8427e
于是测试用md5函数产生md5密文并用base64编码后,加上{MD5}前缀,塞到mysql里,发现通过了authtest的测试!再查看了一下courier-authlib的checkpasswd.c及checkpasswdmd5.c和md5目录下的md5加密函数,证实了就是校验二进制+base64编码后的md5密文,而不是hex后的密文。
问题是如何从hex格式的密文转成binary格式?很多用户从其他系统转到ext*下时,密码大多是md5 hex格式的,于是编写如下代码实现转换:
引用:
use MIME::Base64;
my $s = 'd41d8cd98f00b204e9800998ecf8427e';
$s =~ s/(..)/bin($1)/ge;
$s = '{MD5}'.encode_base64($s);
$s =~ s//s+//; # remove newline
print $s, "/n";
sub bin {
my $n = shift;
sprintf("%c", hex($n));
}
引用:
{MD5}1B2M2Y8AsgTpgAmY7PhCfg==
- 如何获得符合{MD5}+base64编码的md5密码串?
- 解密MD5+base64的密码
- 密码加密之MD5+Base64
- java MD5 加密 Base64 编码
- MD5加密算法及BASE64编码
- MD5加密及BASE64编码
- MD5加密与BASE64编码
- MD5 、AES加密、BASE64编码
- base64编码 与 MD5加密
- 使用他人的MD5编码类,修改形成密码串
- IOS网络笔记--base64编码和MD5加密的使用方法
- 编码和加密算法的使用(MD5、Base64、DES、RSA)
- 获得文件的MD5
- 如何获得证书的BASE64编码
- 如何获得证书的BASE64编码
- js MD5加密 和 base64编码实现!
- Android Base64 Md5 SHA1 编码解码 解析
- Base64以及Md5的使用
- .sql server的所有数据类型(先收集起来,有时间再看)
- 并修改Google AppEngine + Eclipse + PyDev
- 简单图形
- 设计模式之BUILDER生成器2
- Lua的语法是无歧义的吗?
- 如何获得符合{MD5}+base64编码的md5密码串?
- 周易专家张学琴谈周易与风水
- 嵌入式学习笔记
- 快速幂的二分求法
- 开放平台和云计算
- Tomcat中文乱码问题的原理和解决方法
- windows via c/c++ 读书笔记
- 07华中科技大学复试上机(软件)
- WINCE开机自动运行指定程序