|
楼主 |
发表于 2011-6-10 20:15:01
|
显示全部楼层
Post by jacuro;2142199
官方文档中,提到使用类似的命令测试plain auth.
- perl -MMIME::Base64 -e \
- 'print encode_base64("\0username\0password");'
复制代码
这个可能会出问题,为什么呢?因为在Perl语言中,\nnn(n代表数字)转义序列用来表示8进制数,此处,如果你的密码是123456,用户名是jacuro,于是:
- perl -MMIME::Base64 -e \
- 'print encode_base64("\0jacuro\0123456");'
复制代码
斜杠后面的连续3个数字(012)被认为是一个8进制序列,最终会转换为一个字符.这样产生的base64编码必然是错误的.
所以,如果用户名或者密码的开头是数字,请把\0写成\000,这样安全些.
比如这样子:
- perl -MMIME::Base64 -e 'print encode_base64("\0jacuro\000123456");'
复制代码
谢谢了 就是按照你的提示和帮助解决的 |
|