最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python hashlib模塊實例使用詳解

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

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

hashlib模塊主要的作用:

加密保護消息安全,常用的加密算法如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、按加密算法名字進行動態(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)存會導致內(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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python中溫度單位轉(zhuǎn)換的實例方法

    python中溫度單位轉(zhuǎn)換的實例方法

    在本篇文章里小編給大家整理關于python中溫度單位轉(zhuǎn)換的實例方法,有需要的朋友們可以學習參考下。
    2020-12-12
  • Python 解決空列表.append() 輸出為None的問題

    Python 解決空列表.append() 輸出為None的問題

    在本篇文章里小編給大家整理了一篇關于Python 解決空列表.append() 輸出為None的問題的相關內(nèi)容,有興趣的朋友們可以學習下。
    2021-05-05
  • Python遠程控制Windows服務器的方法總結(jié)

    Python遠程控制Windows服務器的方法總結(jié)

    在信息時代的洪流中,掌握一門編程語言已經(jīng)成為一項必備技能,Python,這門以簡潔、易學、強大著稱的編程語言,更是成為無數(shù)開發(fā)者的大寶劍,今天,我們要探討的就是如何用 Python 遠程控制 Windows 服務器,需要的朋友可以參考下
    2024-07-07
  • 如何利用python創(chuàng)建、讀取和修改CSV數(shù)據(jù)文件

    如何利用python創(chuàng)建、讀取和修改CSV數(shù)據(jù)文件

    csv文件與txt文件類似,區(qū)別點就是在csv文件中,字段間使用“,”或“|”隔開,達到類似與表格的效果,下面這篇文章主要給大家介紹了關于如何利用python創(chuàng)建、讀取和修改CSV數(shù)據(jù)文件的相關資料,需要的朋友可以參考下
    2022-05-05
  • 徹底搞懂Python字符編碼

    徹底搞懂Python字符編碼

    本篇文章帶領大家徹底搞懂Python字符編碼的一些知識,及python字符編碼的一些基礎概念,需要的朋友可以參考下
    2018-01-01
  • Python日志模塊logging用法

    Python日志模塊logging用法

    這篇文章介紹了Python日志模塊logging的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Python實現(xiàn)的讀寫json文件功能示例

    Python實現(xiàn)的讀寫json文件功能示例

    這篇文章主要介紹了Python實現(xiàn)的讀寫json文件功能,結(jié)合實例形式分析了Python針對json文件進行讀寫的常見操作技巧與注意事項,需要的朋友可以參考下
    2018-06-06
  • Python和Anaconda和Pycharm安裝教程圖文詳解

    Python和Anaconda和Pycharm安裝教程圖文詳解

    PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,這篇文章主要介紹了Python和Anaconda和Pycharm安裝教程,需要的朋友可以參考下
    2020-02-02
  • Python輕量級Web框架之Flask用法詳解

    Python輕量級Web框架之Flask用法詳解

    Flask是一個用Python編寫的輕量級Web應用框架,由于其“微”性質(zhì),Flask在提供核心服務的同時,仍然提供了許多擴展的可能性,在這篇文章中,我們將從最基礎開始,學習如何使用Flask構(gòu)建一個Web應用,需要的朋友可以參考下
    2023-08-08
  • Python熱重載調(diào)試新利器問題解決

    Python熱重載調(diào)試新利器問題解決

    Reloading是一個Python工具庫,它讓我們可以在每次迭代之前從源代碼中重新加載(或函數(shù))而不丟失任何當前已執(zhí)行過程,這篇文章主要介紹了Python熱重載調(diào)試新利器,需要的朋友可以參考下
    2024-06-06

最新評論

新巴尔虎左旗| 贺兰县| 汝城县| 新平| 堆龙德庆县| 漯河市| 冷水江市| 铜梁县| 平度市| 南乐县| 长武县| 卓尼县| 年辖:市辖区| 垫江县| 宜川县| 崇阳县| 合川市| 瓦房店市| 隆化县| 类乌齐县| 郎溪县| 隆安县| 乌鲁木齐市| 平昌县| 康保县| 杭州市| 当阳市| 西充县| 乐山市| 桃江县| 沙坪坝区| 全州县| 泉州市| 浦北县| 北票市| 乌审旗| 高雄县| 霍城县| 侯马市| 伊宁县| 霍邱县|