码迷,mamicode.com
首页 > 编程语言 > 详细

python模块的学习——base64模块

时间:2015-12-08 18:04:43      阅读:552      评论:0      收藏:0      [点我收藏+]

标签:

首先,对于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换行符引起的错误

 

python模块的学习——base64模块

标签:

原文地址:http://www.cnblogs.com/zjj-laibujishuozaijian/p/5029674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!