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 相关文章推荐
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
Jun 09 Python
python使用turtle库绘制树
Jun 25 Python
Python多线程获取返回值代码实例
Feb 17 Python
python统计文章中单词出现次数实例
Feb 27 Python
通过实例解析Python return运行原理
Mar 04 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Django实现celery定时任务过程解析
Apr 21 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
python在协程中增加任务实例操作
Feb 28 Python
python通过函数名调用函数的几种方法总结
Jun 07 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数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
详解python logging日志传输
2020/07/01 Python
Python高并发和多线程有什么关系
2020/11/14 Python
python wsgiref源码解析
2021/02/06 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
优秀团员自我评价范文
2014/04/23 职场文书
青春无悔演讲稿
2014/05/08 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书