python采用hashlib这个标准库实现MD5加密解密。方法是:1、updata传数据;2、利用hexdigest进行16进制转换;

update(arg)传入arg对象来更新hash的对象。必须注意的是,该方法只接受byte类型,否则会报错。这就是要在参数前添加b来转换类型的原因。

同时要注意,重复调用update(arg)方法,是会将传入的arg参数进行拼接,而不是覆盖。也就是说,m.update(a); m.update(b) 等价于m.update(a b)。

hexdigest()在英语中hex有十六进制的意思,因此该方法是将hash中的数据转换成数据,其中只包含十六进制的数字。>>> import hashlib

>>> m = hashlib.md5()

>>> m.update(b'123')

>>> m.hexdigest()

'202cb962ac59075b964b07152d234b70'

# 或者可以这样(最常见的写法,常用于图片的命名)

>>> hashlib.md5(b'123').hexdigest()

'202cb962ac59075b964b07152d234b70'

# 也可以使用hash.new()这个一般方法,hashlib.new(name[, data]),name传入的是哈希加密算法的名称,如md5

>>> hashlib.new('md5', b'123').hexdigest()

'202cb962ac59075b964b07152d234b70'

以上是对于英文进行md5加密的,如果要对中文进行加密,发现按照上面来写会报错,原因在于字符转码问题,要如下写:>>> import hashlib

>>> data = '你好'

>>> hashlib.md5(data.encode(encoding='UTF-8')).hexdigest()

'7eca689f0d3389d9dea66ae112e5cfd7'

此处先将数据转换成UTF-8格式的,使用网上工具对比下加密的结果,发现有的md5加密工具并不是使用UTF-8格式加密的。

经测试目前发现可以转为UTF-8、GBK、GB2312、GB18030,不分大小写(因为GBK/GB2312/GB18030均是针对汉字的编码,所以md5加密后结果一样)。

例如:>>> hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest()

'7eca689f0d3389d9dea66ae112e5cfd7'

>>> hashlib.md5('你好'.encode(encoding='GBK')).hexdigest()

'b94ae3c6d892b29cf48d9bea819b27b9'

>>> hashlib.md5('你好'.encode(encoding='GB2312')).hexdigest()

'b94ae3c6d892b29cf48d9bea819b27b9'

>>> hashlib.md5('你好'.encode(encoding='GB18030')).hexdigest()

'b94ae3c6d892b29cf48d9bea819b27b9'

python破解md5_python怎么使用md5加密解密相关推荐

  1. 如何使用MD5加密解密工具?

    MD5加密解密工具是用于计算MD5消息摘要的工具,可以将文本.密码等数据进行加密处理以保护数据安全. 使用MD5加密解密工具通常需要输入待加密的字符串或文件,程序会自动通过预设的算法计算出与此字符串对 ...

  2. RSA、MD5加密解密算法全套解析安装教程

    第一部分介绍加密解密算法, 第二部分介绍我小组成功应用的RSA.MD5两种加密解密算法,以及心得体会. 1.加密解密算法介绍 应用的开发中安全很重要,所以信息加密技术显得尤为重要.我们需要对应用中的多 ...

  3. java中完成md5加密解密_java实现md5加密解密 notNET中加密和解密的实现方法

    java实现md5加密解密 notNET中加密和解密的实现方法 亦或是旅途风光 7-14 1918℃ 22 [ ee21.cn - ASP.NET ] .NET将原来独立的API和SDK合并到一个框架 ...

  4. C# MD5加密解密帮助类

    /// <summary>     /// MD5加密解密帮助类     /// </summary>     public static class DESHelper    ...

  5. Java实现MD5加密解密类

    Java实现MD5加密以及解密类,附带测试类,具体见代码. MD5加密解密类--MyMD5Util,代码如下: [java] view plaincopy package com.zyg.securi ...

  6. 手机号 MD5加密解密工具类

    package com.yestar.common.utils;import java.io.UnsupportedEncodingException; import java.security.Me ...

  7. 教你如何使用 Python 将 pdf 文档进行 加密 解密——python实用小技能分享

      上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人 ...

  8. c语言字符串md5加密解密,.net core使用MD5加密解密字符串

    本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下 /// /// 加密 /// /// 要加密的文本 /// 秘钥 /// public static ...

  9. java 采用MD5加密解密代码示例(不玩套路, 非标题党, 附带解密代码)

    package cn.demo; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; im ...

最新文章

  1. linux 定时器 crontab 实例 计划任务 定时任务
  2. jdbc mysql - Column count doesn't match value count at row 1.
  3. C++中在什么时候需要使用“常引用”?
  4. 使用docker安装mysql服务
  5. 浅谈Java解决鸡兔同笼问题的思路
  6. Java黑皮书课后题第5章:5.12(求满足n方>12000的n的最小值)使用while循环找出满足n方大于12000的最小整数n
  7. Puffer:专注拥塞控制、带宽预测和ABR
  8. 动态加载vs静态加载
  9. python网络编程证书_python 网络编程——客户端
  10. IOS中的事件响应链,事件冒泡机制基本了解
  11. Jenkins任务配置详解,支持ssh远程部署,maven聚合项目,springboot
  12. Tcl 语言 ——列表篇
  13. 程序设计框架图和框架加载流程
  14. G Parenthesis
  15. ubuntu16.04 nvidia gtx1060 驱动安装
  16. 这种木头比钢和陶瓷更锋利,轻松切开半熟牛排,钉穿三层木板,还永不生锈 | Cell子刊...
  17. 2011年1月22日 上野公园,秋叶原游记
  18. 关于工资、社保、公积金、个人所得税等小常识
  19. Commander入门
  20. python单位根检验平稳性怎么看是否平稳_Python ADF 单位根检验 如何查看结果的实现...

热门文章

  1. [B站视频]Python爬虫技术5天速成
  2. iphone win7无法识别_电脑无法识别iphone、ipad的解决办法
  3. Qoo10趣天网店铺绑定连连跨境支付收款教程!
  4. 一政:公务员笔试备考注意这几点
  5. 安卓期末大作业——汉服社区(源码+任务书)
  6. “数说”四十年春运交通变迁
  7. fedora 27字体美化达到ubuntu级别
  8. MDK的编译过程及文件类型全解——(二)
  9. CF1527E Partition Game——DP优化
  10. 文科生学python_论文科生学习Python的收获