python模块的学习——base64模块

首先,对于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').


默认会有换行符,虽然解码时并不会有错误,并且经过试验,不切片也可以正常登陆。但是切片吧,别人的错误:

base64换行符引起的错误

 

posted @ 2015-12-08 17:33  小肚子鱼丸  阅读(324)  评论(0编辑  收藏  举报