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

Python hashlib模塊實(shí)例使用詳解

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

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

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)))

運(yùn)行效果

[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())

運(yùn)行效果

[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())

運(yùn)行效果

[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

運(yùn)行效果

[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())

運(yùn)行效果

[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.'''

#一次性加密:缺點(diǎn)文件大的話,加載到內(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)

運(yùn)行效果

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

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

相關(guān)文章

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

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

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

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

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

    Python遠(yuǎn)程控制Windows服務(wù)器的方法總結(jié)

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

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

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

    徹底搞懂Python字符編碼

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

    Python日志模塊logging用法

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

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

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

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

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

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

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

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

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

最新評論

临城县| 赣榆县| 延寿县| 都江堰市| 中西区| 鲜城| 龙胜| 涿州市| 子洲县| 香港| 华宁县| 搜索| 门头沟区| 高邑县| 绥中县| 南投市| 浦县| 大理市| 庆安县| 诏安县| 岢岚县| 隆昌县| 蕲春县| 安吉县| 佛山市| 抚宁县| 延津县| 武川县| 平舆县| 渝北区| 辉县市| 辉南县| 宜阳县| 抚顺市| 延长县| 岳阳市| 河北区| 武胜县| 津南区| 安岳县| 余庆县|