标签:
首先,对于base64模块的学习参考别人的总结:
http://blog.csdn.net/wanghai__/article/details/6898032
之后,在模拟登录的过程中,需要对用户名进行加密编码,采用base64.encodestring()函数
1 def GetUserName(userName): 2 userNameTemp = urllib.quote(userName) 3 userNameEncoded = base64.encodestring(userNameTemp)[:-1] 4 return userNameEncoded
不理解为什么要加切片[:-1] ??????!!!!!!!
比较了切片和没有切片,完全一样!!想到可能是最后一位有换行符或者空格!!
比较了len():
1 #-*-coding:UTF-8-*- 2 import urllib 3 import base64 4 userName=‘小肚子鱼丸dddd‘ 5 6 userNameTemp = urllib.quote(userName) 7 userNameEncoded = base64.encodestring(userNameTemp)[:-1] 8 print userNameTemp 9 print userNameEncoded 10 print len(userNameEncoded)
输出如下:
%D0%A1%B6%C7%D7%D3%D3%E3%CD%E8dddd
JUQwJUExJUI2JUM3JUQ3JUQzJUQzJUUzJUNEJUU4ZGRkZA==
48
不切片的输出:
1 %D0%A1%B6%C7%D7%D3%D3%E3%CD%E8dddd 2 JUQwJUExJUI2JUM3JUQ3JUQzJUQzJUUzJUNEJUU4ZGRkZA== 3 4 49
验证猜想:要去掉换行符!!
但是为什么要去掉换行符???编码之后都有换行符吗??
官方文件:
1 Encode the string s, which can contain arbitrary binary data, and return a string containing one or more lines of base64-encoded data. encodestring() returns a string containing one or more lines of base64-encoded data always including an extra trailing newline (‘\n‘).
默认会有换行符,虽然解码时并不会有错误,并且经过试验,不切片也可以正常登陆。但是切片吧,别人的错误:
标签:
原文地址:http://www.cnblogs.com/zjj-laibujishuozaijian/p/5029674.html