欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python hashlib模塊實例使用詳解

 更新時間:2019年12月24日 14:50:49   作者:小粉優(yōu)化大師  
這篇文章主要介紹了Python hashlib模塊實例使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Python hashlib模塊實例使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

hashlib模塊主要的作用:

加密保護(hù)消息安全,常用的加密算法如MD5,SHA1等。

1、查看可用的算法有哪些

hashlib_algorithms.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import hashlib
# 始終可用的算法
print('始終可用的算法 : {}'.format(sorted(hashlib.algorithms_guaranteed)))
print('需要結(jié)合OpenSSL可用算法 : {}'.format(sorted(hashlib.algorithms_available)))

運行效果

[root@ mnt]# python3 hashlib_algorithms.py 
始終可用的算法 : ['blake2b', 'blake2s', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256']
需要結(jié)合OpenSSL可用算法 : ['DSA', 'DSA-SHA', 'MD4', 'MD5', 'RIPEMD160', 'SHA', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512', 'blake2b', 'blake2s', 'dsaEncryption', 'dsaWithSHA', 'ecdsa-with-SHA1', 'md4', 'md5', 'ripemd160', 'sha', 'sha1', 'sha224', 'sha256', 'sha384', 'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512', 'sha512', 'shake_128', 'shake_256', 'whirlpool']

2、md5加密算法(沒有加鹽)

hashlib_md5.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import hashlib
md5_obj = hashlib.md5()
md5_obj.update('123456'.encode('utf-8'))
print(md5_obj.hexdigest())

運行效果

[root@ mnt]# python3 hashlib_md5.py 
e10adc3949ba59abbe56e057f20f883e

3、md5加密算法(加鹽)

hashlib_md5_salt.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib

salt = '1234'
md5_obj = hashlib.md5(salt.encode('utf-8'))
md5_obj.update('123456'.encode('utf-8'))
print(md5_obj.hexdigest())

運行效果

[root@ mnt]# python3 hashlib_md5_salt.py 
b38e2bf274239ff5dd2b45ee9ae099c9

4、sha1加密算法

hashlib_sha1.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import hashlib
sha1_obj = hashlib.sha1()
sha1_obj.update('123456'.encode('utf-8'))
print(sha1_obj.hexdigest())
hashlib_sha1.py

運行效果

[root@ mnt]# python3 hashlib_sha1.py 
7c4a8d09ca3762af61e59520943dc26494f8941b

5、按加密算法名字進(jìn)行動態(tài)加密(即hashlib.new(‘算法名字'))

hashlib_new.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib
import argparse

lorem = 'Hello World'

parser = argparse.ArgumentParser('hashlib Demo')
parser.add_argument(
  'hash_name',
  choices=hashlib.algorithms_available,
  help='請輸入hashlib的名字'
)

parser.add_argument(
  'data',
  nargs='?',
  default=lorem,
  help='請輸入要加密的數(shù)據(jù)'
)

args = parser.parse_args()
h = hashlib.new(args.hash_name)
h.update(args.data.encode('utf-8'))
print(h.hexdigest())

運行效果

[root@ mnt]# python3 hashlib_new.py md5 123456
e10adc3949ba59abbe56e057f20f883e

[root@ mnt]# python3 hashlib_new.py sha1 123456
7c4a8d09ca3762af61e59520943dc26494f8941b

[root@ mnt]# python3 hashlib_new.py sha256 123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92


[root@mnt]# python3 hashlib_new.py sha512 123456
ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413

6、大文件切片md5加密算法

hashlib_update.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import hashlib

content = '''Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillum
dolore eu fugiat nulla pariatur. Excepteur sint occaecat
cupidatat non proident, sunt in culpa qui officia deserunt
mollit anim id est laborum.'''

#一次性加密:缺點文件大的話,加載到內(nèi)存會導(dǎo)致內(nèi)存溢出
h = hashlib.md5()
h.update(content.encode('utf-8'))
all_at_once = h.hexdigest()

#利用生成器,切片加密,對大文件加密有用
def chunkize(size, text):
  start = 0
  while start < len(text):
    chuck = text[start:start + size]
    yield chuck
    start += size
  return

#一行一行加密
h = hashlib.md5()
for chunk in chunkize(64,content.encode(('utf-8'))):
  h.update(chunk)
line_by_line = h.hexdigest()

print('一性次加密結(jié)果 : ',all_at_once)
print('一行一行加密結(jié)果 : ',line_by_line)

運行效果

[root@ mnt]# python3 hashlib_update.py 
一性次加密結(jié)果 : 3f2fd2c9e25d60fb0fa5d593b802b7a8
一行一行加密結(jié)果 : 3f2fd2c9e25d60fb0fa5d593b802b7a8

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django調(diào)用百度AI接口實現(xiàn)人臉注冊登錄代碼實例

    Django調(diào)用百度AI接口實現(xiàn)人臉注冊登錄代碼實例

    這篇文章主要介紹了Django調(diào)用百度AI接口實現(xiàn)人臉注冊登錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用體驗

    Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用體驗

    這篇文章主要為大家介紹了Python推導(dǎo)式之字典推導(dǎo)式和集合推導(dǎo)式使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python判斷文件和文件夾是否存在的方法(最新推薦)

    Python判斷文件和文件夾是否存在的方法(最新推薦)

    常在讀寫文件之前,需要判斷文件或目錄是否存在,不然某些處理方法可能會使程序出錯,所以最好在做任何操作之前,先判斷文件是否存在,沒有則創(chuàng)建,今天通過實例代碼講解下Python判斷文件和文件夾是否存在的方法,感興趣的朋友一起看看吧
    2022-11-11
  • Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境

    這篇文章主要介紹了Windows 8.1 64bit下搭建 Scrapy 0.22 環(huán)境,需要的朋友可以參考下
    2018-11-11
  • 解決Python計算矩陣乘向量,矩陣乘實數(shù)的一些小錯誤

    解決Python計算矩陣乘向量,矩陣乘實數(shù)的一些小錯誤

    今天小編就為大家分享一篇解決Python計算矩陣乘向量,矩陣乘實數(shù)的一些小錯誤,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python中的進(jìn)制轉(zhuǎn)換詳解

    Python中的進(jìn)制轉(zhuǎn)換詳解

    這篇文章主要介紹了Python中的進(jìn)制轉(zhuǎn)換詳解,python內(nèi)置函數(shù)進(jìn)行進(jìn)制轉(zhuǎn)換的原理是將讀入的一個字符串(python默認(rèn)讀入的都是字符串形式)轉(zhuǎn)為10進(jìn)制,然后再用相關(guān)函數(shù)進(jìn)行其他進(jìn)制轉(zhuǎn)換,需要的朋友可以參考下
    2023-08-08
  • Python繪制移動均線方法 含源代碼

    Python繪制移動均線方法 含源代碼

    上一篇文章我們介紹了Python繪制專業(yè)的K線圖,講解了數(shù)據(jù)獲取、K線圖繪制及成交量繪制等內(nèi)容。本篇將在上一篇的基礎(chǔ)上,繼續(xù)講解移動均線的繪制,需要的朋友可以參考下
    2021-10-10
  • pytorch自定義不可導(dǎo)激活函數(shù)的操作

    pytorch自定義不可導(dǎo)激活函數(shù)的操作

    這篇文章主要介紹了pytorch自定義不可導(dǎo)激活函數(shù)的操作,具有很好的參考價值,希望大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 使用Python快速提取PPT中的文本內(nèi)容的代碼示例

    使用Python快速提取PPT中的文本內(nèi)容的代碼示例

    本文將介紹如何使用Python程序提取PowerPoint演示文稿中的文本內(nèi)容,包括幻燈片中的主體文本、幻燈片備注文本以及幻燈片,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-03-03
  • python 中pyqt5 樹節(jié)點點擊實現(xiàn)多窗口切換問題

    python 中pyqt5 樹節(jié)點點擊實現(xiàn)多窗口切換問題

    這篇文章主要介紹了python 中pyqt5 樹節(jié)點點擊實現(xiàn)多窗口切換問題,文中給大家介紹了python pyqt5 點擊按鈕來打開另一個窗口的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒借鑒價值,需要的朋友可以參考下
    2019-07-07

最新評論