Python使用MD5加密字符串示例


Posted in Python onAugust 22, 2014

Python加密模块有好几个,但无论是哪种加密方式都需要先导入相应的加密模块然后再使用模块对字符串加密。

先导入md5加密所需模块:

import hashlib

创建md5对象
m = hashlib.md5()

生成加密串,其中 password 是要加密的字符串
m.update('password')

获取加密串
psw = m.hexdigest()

输出
print psw

执行:
5f4dcc3b5aa765d61d8327deb882cf99

为了方便,我们可以写成函数,直接传入要加密的字符串调用即可
def md5(str):

    import hashlib

    m = hashlib.md5()   

    m.update(str)

    return m.hexdigest()

调用:
str = md5('password')

如果传入的参数不是字符串会报错
str = md5(['a','b'])

报错:
Traceback (most recent call last):

  File "D:\python\demo1\c.py", line 9, in <module>

    str = md5(['a','b'])

  File "D:\python\demo1\c.py", line 5, in md5

    m.update(str)

TypeError: must be string or buffer, not list

我们可以对传入的类型检测,避免报错
def md5(str):

    import hashlib

    import types

    if type(str) is types.StringType:

        m = hashlib.md5()   

        m.update(str)

        return m.hexdigest()

    else:

        return ''

当我们传入的参数为字符串即可正确返回加密串,其他类型均返回空!
Python 相关文章推荐
Python tempfile模块学习笔记(临时文件)
May 25 Python
Python中类型关系和继承关系实例详解
May 25 Python
python中list常用操作实例详解
Jun 03 Python
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
python高阶爬虫实战分析
Jul 29 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
Python3运算符常见用法分析
Feb 14 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 #Python
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
Aug 22 #Python
Python with的用法
Aug 22 #Python
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 #Python
python with statement 进行文件操作指南
Aug 22 #Python
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 #Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 #Python
You might like
Yii核心验证器api详解
2016/11/23 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
python常见排序算法基础教程
2017/04/13 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python中super函数用法实例分析
2019/03/18 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
运动会广播稿500字
2014/01/28 职场文书
小学生考试获奖感言
2014/01/30 职场文书
爱护公物标语
2014/06/24 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
经理岗位职责
2015/02/02 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL