Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1010091
  • 博文数量: 157
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1388
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-09 15:37
文章分类

全部博文(157)

文章存档

2023年(9)

2022年(2)

2021年(18)

2020年(7)

2017年(13)

2016年(53)

2015年(55)

我的朋友

分类: LINUX

2016-04-13 17:07:24

做了下面的测试:
1. xshell的编码格式是utf-8,执行python脚本得到字符串的utf-8编码下的md5值
>> import hashlib      
>>> i = u'hs2d!ds-df;dfU8fdsER&S6dwd1e/wkxd/测试/test.mp41'       
... u = i.encode('utf-8')       
... mu = hashlib.md5()  
>>> mu.update(u)        
>>> mu.hexdigest()
'c772517ade7b4365f95d93f4b074ce41'
 
>>> 
2. xshell的编码格式是GBK,执行python脚本得到错误的utf-8下的md5值 ,得到的是gbk下的md5值
>>> import hashlib      
>>> i = u'hs2d!ds-df;dfU8fdsER&S6dwd1e/wkxd/测试/test.mp41'       
... u = i.encode('utf-8')            
... mu = hashlib.md5()  
>>> mu.update(u)        
>>> mu.hexdigest()
'd4b676a75465bdc3807dbd2855349b71'  

3. xshell的编码格式是gbk,执行python脚本得到正确的gbk下的md5值,但是报错了
>>> import hashlib      
>>> i = u'hs2d!ds-df;dfU8fdsER&S6dwd1e/wkxd/测试/test.mp41'     
>>> 
>>> g = i.encode('gbk'
Traceback (most recent call last):
  File "", line 1, in
UnicodeEncodeError: 'gbk' codec can't encode character u'\xb2' in position 34: illegal multibyte sequence
>>> 
>>> mg = hashlib.md5()  
>>> mg.update(g)        
>>> mg.hexdigest()      
'd4b676a75465bdc3807dbd2855349b71'

4. 下面这样写就不报错了
#!/usr/bin/env python
# -*- coding: gbk -*-
import hashlib
i = u'hs2d!ds-df;dfU8fdsER&S6dwd1e/wkxd/测试/test.mp41'
g = i.encode('gbk')
mg = hashlib.md5()
mg.update(g)
mg.hexdigest()
print mg.hexdigest()

5. 或者把xshell的编码格式改为utf-8,输出的结果是gbk编码后的md5值

总结
1. 如上测试,
xshell中的编码格式可以设置为utf-8不变,执行对应的python脚本,就可以得到正确编码格式下的md5值
2. 测试中文求md5值的时候,编码主要分为utf-8和gbk,这个主要决定于发送url请求的客户端的编码格式,如xshell客户端设置编码格式gbk后发送请求,程序会根据xshell客户端的gbk编码格式进行求md5值,求出的就是gbk编码下的md5值
3. 在xshell客户端的utf-8编码格式下执行下面命令算出来的是utf-8编码下的md5值,在xshell的gbk编码格式下执行下面命令算出来的是gbk编码下的md5值
命令:
求字符串string的md5值:echo -n  "string" |md5sum|cut -d ' ' -f1   (-n必须带着)
求文件jilu.txt的md5值:md5sum jilu.txt |cut -d " " -f1
求字符串string的base64编码:echo -n "string" |base64



阅读(4320) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~