码迷,mamicode.com
首页 > 编程语言 > 详细

Python3之hashlib

时间:2018-02-10 22:38:40      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:gpo   dmi   进制   new   col   return   a20   操作   ges   

简介:

  用于加密相关的操作,代替了md5模块和sha模块,主要提供SHA1SHA224SHA256SHA384SHA512,MD5算法。
python3中已经废弃了md5sha模块,简单说明下md5sha的使用。

  什么是摘要算法呢?

  摘要算法又称为哈希算法,散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)用于加密相关的操作。

应用:

1. md5加密

1 hash = hashlib.md5()

2 hash.update(‘admin‘.encode(‘utf-8‘))

3 print(hash.hexdigest())

4 21232f297a57a5a743894a0e4a801fc3

2. sha1加密

1 hash = hashlib.sha1()

2 hash.update(‘admin‘.encode(‘utf-8‘))

3 print(hash.hexdigest())

4 d033e22ae348aeb5660fc2140aec35850c4da997

3. sha256加密

1 hash = hashlib.sha256()

2 hash.update(‘admin‘.encode(‘utf-8‘))

3 print(hash.hexdigest())

4 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

4. sha384加密

1 hash = hashlib.sha384()

2 hash.update(‘admin‘.encode(‘utf-8‘))

3 print(hash.hexdigest())

4 9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782

5. sha512加密

技术分享图片

1 hash = hashlib.sha512()

2 hash.update(‘admin‘.encode(‘utf-8‘))

3 print(hash.hexdigest())

4 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec

技术分享图片

6. ‘加盐加密

  以上加密算法虽然很厉害,但仍然存在缺陷,通过撞库可以反解。所以必要对加密算法中添加自定义key再来做加密。

1 ###### md5 加密 ############

2 hash = hashlib.md5(‘python‘.encode(‘utf-8‘))

3 hash.update(‘admin‘.encode(‘utf-8‘))

4 print(hash.hexdigest())

5 75b431c498b55557591f834af7856b9f

7. hmac加密

  hmac内部对我们创建的key和内容进行处理后在加密

1 import hmac

2 h = hmac.new(‘python‘.encode(‘utf-8‘))

3 h.update(‘helloworld‘.encode(‘utf-8‘))

4 print(h.hexdigest())

5 b3b867248bb4cace835b59562c39fd55

 

8. 获取文件的MD5

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import hashlib

def md5sum(filename):

        """

        用于获取文件的md5值

        :param filename: 文件名

        :return: MD5

        """

        if not os.path.isfile(filename):  # 如果校验md5的文件不是文件,返回空

            return

        myhash = hashlib.md5()

        f = open(filename, ‘rb‘)

        while True:

            b = f.read(8096)

            if not b:

                break

            myhash.update(b)   

        f.close()

        return myhash.hexdigest()

 

Python3之hashlib

标签:gpo   dmi   进制   new   col   return   a20   操作   ges   

原文地址:https://www.cnblogs.com/hhjwqh/p/8439874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!