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的pyxmpp2中的主循环使其提高性能
Apr 24 Python
python3实现暴力穷举博客园密码
Jun 19 Python
Python爬取三国演义的实现方法
Sep 12 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
python实现登录密码重置简易操作代码
Aug 14 Python
python中图像通道分离与合并实例
Jan 17 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 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安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
vue如何判断dom的class
2018/04/26 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
[01:57]2016完美“圣”典风云人物:国士无双专访
2016/12/04 DOTA
深入理解Python中装饰器的用法
2016/06/28 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python collections模块的使用方法
2020/10/09 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
一套带网友答案的.NET笔试题
2016/12/06 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
物业管理应届生求职信
2013/10/28 职场文书
运动会通讯稿50字
2014/01/30 职场文书
给国外客户的邀请函
2014/01/30 职场文书
委托协议书范本
2014/04/22 职场文书
社区志愿者活动总结
2014/06/26 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
2016年情人节广告语
2016/01/28 职场文书
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle