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计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
Python操作mongodb的9个步骤
Jun 04 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python ORM框架Peewee用法详解
Apr 29 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
python基础之模块的导入
Oct 24 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
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
php中数组最简单的使用方法
2020/12/27 PHP
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
详细介绍Python函数中的默认参数
2015/03/30 Python
Python读写文件方法总结
2015/06/09 Python
Python 字典与字符串的互转实例
2017/01/13 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
利用python为运维人员写一个监控脚本
2018/03/25 Python
python处理数据,存进hive表的方法
2018/07/04 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
测试工程师岗位职责
2013/11/28 职场文书
秋季运动会稿件
2014/01/30 职场文书
先进员工获奖感言
2014/08/14 职场文书
基层党员对照检查材料
2014/08/25 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书