1. 程式人生 > >利用Python 生成hash值

利用Python 生成hash值

一、介紹

如果在Python中需要對使用者輸入的密碼或者其他內容進行加密,首選的方法是生成hash值。
在Python中可以利用二個模組來進行:
- crypt
- hashlib

二、crypt

(一)crypt的主要方法和常量

名稱 型別 描述
crypt(…) 方法 對指定內容進行hash加密
methods(…) 方法 返回可以用到的加密演算法
mksalt(…) 方法 根據加密演算法生成salt
methods(…) 方法 返回可用加密演算法的列表
METHOD_MD5 常量 md5加密演算法
METHOD_SHA256 常量 sha256加密演算法
METHOD_SHA512 常量 sha512加密演算法

(二)使用說明與示例

使用crypt.crypt(…)進行hash加密的時候,需要提供二個引數:
- 加密內容
- salt

如果不特別指定salt,系統就會呼叫crypt.mksalt(…)生成一個salt

如果想要以特定的加密演算法生成salt就應該使用下面的命令:

>>>salt = crypt.mksalt(crypt.METHOD_SHA512)
>>> salt
'$6$s8Q3eNP6urKZb3AK'

然後再進行資料加密:

>>> hash = crypt.crypt("helloworld",salt)
>>> hash
'$6$s8Q3eNP6urKZb3AK$L0O5cqHRU.1f170bV2KrjF3LkLL54So442TqUIsk.wYtCtOSD4Tyt./fj6W6Y.EzrbNm00grA4yPPhXGya2ie1'

三、hashlib

(一)hashlib的主要方法和常量

名稱 描述
md5(…) 利用md5演算法加密
sha1(…) 利用sha1演算法加密
sha224(…) 利用sha224演算法加密
sha256(…) 利用sha256演算法加密
sha384(…) 利用sha384演算法加密
sha512(…) 利用sha512演算法加密

**(二)Hash物件特有的方法

如果你利用hashlib生成了一個Hash物件,那麼這個Hash物件會包含如下方法:

名稱 描述
update(arg) 可以重複利用指定了特殊加密演算法的Hash物件,對arg進行加密
digest(…) 以字元形式返回加密內容
hexdigest(…) 以16進位制形式返回加密內容
copy(…) 為了達到重複利用Hash物件的目的,而克隆Hash物件

(三)示例

1、直接使用hashlib方法
>>> hashlib.sha224("Nobody inspects the spammish repetition")
<sha224 HASH object @ 0x7f99432c5b28>

>>> hashlib.sha224("Nobody inspects the spammish repetition").hexdigest()
'a4337bc45a8fc544c03f52dc550cd6e1e87021bc896588bd79e901e2'
2、直接使用Hash物件中的方法
>>> m = hashlib.md5()
>>> m
<md5 HASH object @ 0x7f99432c5468>
>>> m.update("Nobody inspects")
>>> m.digest()
'>\xf7)\xcc\xf0\xccV\x07\x9c\xa5F\xd5\x80\x83\xdc\x12'
>>> m.update(" the spammish repetition")
>>> m.digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'

相關推薦

利用Python 生成hash

一、介紹 如果在Python中需要對使用者輸入的密碼或者其他內容進行加密,首選的方法是生成hash值。 在Python中可以利用二個模組來進行: - crypt - hashlib 二、crypt (一)crypt的主要方法和常量

利用python生成交換機的VRF配置文件

cnblogs pan 運行 成交 交換機 sting write quit spa 為了快速生成有規律的VRF,寫了一個python腳本,可以快速生成如下的VRF配置。 ip vpn-instance vpn0ipv4-family route-distinguish

Python學習筆記——利用Python生成驗證碼圖片

話不多說直接上程式碼。 C部落格編輯器程式碼塊縮排有問題 (⊙﹏⊙)b 還是上圖片吧。T_T 哎 = = 湊合看吧。 註釋寫的比較清楚吧。 呼叫方法的話,目前我用兩種 第一種: 直接用Python編譯器呼叫。 我用的是w

利用 Python 計算MD5

文章架構 目的 日常開發中,經常涉及到針對某些值進行加密的情況(隱私資訊,例如密碼等資訊)。 利用 Python 某些模組將 DataFrame(pandas)某列進行MD5加密處理很方便。 利用Python 3 與 Python 2中不同模組

js隨機生成hash

本篇簡單介紹如何隨機生成一個hashcode //產生一個hash值,只有數字,規則和java的hashcode規則相同 function hashCode(str) { var h = 0; var len = str.length;

推薦一個利用 python 生成 pptx 分析報告的工具包:reportgen

reportgen v0.1.8 更新介紹 這段時間,我對 reportgen 進行了大工程量的修改和更新。將之前在各個文章中出現的函式進行了封裝,同時也對現有工具包的一些邏輯進行了調整。 1、reportgen 簡介 reportgen 的底層是 pptx 檔案生成介

利用python生成驗證碼的四中方式

edr from render aud .sh 字符 choice 噪點 font import random from io import BytesIO from PIL import Image, ImageDraw, ImageFont from django

利用Python叠代器查找最小和最大

urn 最大值 我們 lse dmi tuple 利用 spa 如同 叠代器的用法為for...in.... 叠代器如同for循環,可以遍歷所有的值,但我們熟悉的的語言,都是通過下標完成的,python的循環程度要高於C語言的循環,因為python的叠代不止可以用在Lis

利用Python+ADB打造一款自動點贊和抽獎機制!這款項目多少錢?

adb 漢語 pen stat sdcard -i enc 路徑和 備忘錄 為什麽要做這個呢? 鑒於之前已經有同學實現了自動挖掘抖音美女的案例,所以這個想法終於有了一絲付諸實踐的曙光,潘老師和這位同學一樣使用了Python+ADB的方式來實現。 Python

利用Python把圖片生成詞雲!很秀很裝逼!其實非常簡單,不信你看

前言 今天教大家用wrodcloud模組來生成詞雲,我讀取了一篇小說並生成了詞雲,先看一下效果圖: 效果圖一:     進群:548377875   即可獲取數十套PDF哦! 效果圖二:    

python利用qt生成簡單ui介面

所需工具 pyqt5 安裝 sudo apt-get install python3-pyqt5 首先創造一個小指令碼, 展示一個空白視窗 import sys from PyQt5.QtWidgets import QApplication,QWidget clas

利用Python sklearn庫裡的決策樹模型生成決策樹圖片以及測試分類的準確度

本案例利用sklearn自帶的資料集,選取房子經緯度作為特徵引數來對標籤進行分類。 也用切分的資料訓練模型來進行特徵引數的選擇得到最好的測試準確度。 Python原始碼: #!/usr/bin/env python # encoding: utf-8 """ @Company:華中科技大

利用Python繪製等值線圖

最近需要根據有限的站位點繪製插值等值線圖,在網上中文搜尋一通,只發現了這貨Matplot Basemap 畫湖北地圖、插值、等值線,要麼就是對這貨的轉載,這貨不提供資料的形式,但是基本的程式碼思路還是不錯的,於是繼續轉向google英文,搜到瞭如下的回答,我對程式碼做了註釋,已備別人查詢,關於文中提到的資料是

利用Python的WordCloud生成詞雲

python程式碼: from wordcloud import WordCloud,ImageColorGenerator import matplotlib.pyplot as plt from scipy.misc import imread #載入圖片 #讀

Python演算法筆試題目,破解Hash,N進製法

Find the string whichhas this hash: 25267566250558 The string has length8. Characters can befrom: c,e,i,a,r,w,u,s,p The hash functionworks like

Linux系統中如何利用LVM生成系統快照,以及PE大小的設定

LVM邏輯卷生成系統快照: 快照的目的一個是備份資訊檔案,另外是挽救我們的失誤操作導致系統崩潰;  開始用LVM生成系統快照: 實驗: 在虛擬機器裡: 先觀察我們的基礎裝置引數:(可以看到我們還120M的空間可用): 上圖可以看到我們已有的

python+opencv 計算圖片的感知hash,來計算漢明距離,簡單的找相似圖片

感知雜湊演算法是一類演算法的總稱,包括aHash、pHash、dHash。顧名思義,感知雜湊不是以嚴格的方式計算Hash值,而是以更加相對的方式計算雜湊值,因為“相似”與否,就是一種相對的判定。 aHash:平均值雜湊。速度比較快,但是常常不太精確。 pHash:感知雜湊

python利用unitest生成的報告如何輸出為html

這段時間開始研究unittest框架,眾所周知它是一個單元測試框架。由於個人對視覺化特別感興趣,所以先關注一下如何輸出生成的報告頁面。 1、環境linux,python2.7 2、實現步驟: (1)匯入import   HTMLTestRunner (2)新增內容:    

利用python圖片生成,需10幾行程式碼,生成的動態表情包(小黃鴨)

小編找到了10幾行的,好玩的動態表情包生成的程式碼。分享分享! 這個程式怎麼做呢?不要急,來聽我給大家分析分析。 工具:程式環境 語言:Python 3.6 編輯器:Pycharm 程式步驟 實現字元動態圖轉化只需要 3 步,合久必分,分久必合。 把原動態圖拆分成一幀一幀

利用python指令碼批量生成測試資料並插入資料庫

測試工作中有時候需要做一些假的測試資料,有些資料很多,上千條,手工做的話能累到你懷疑人生!這時候就該想到可以利用python指令碼來實現啦方法一:先寫入txt 然後用sql迴圈執行1.首先python連結資料庫有第三方的庫首先你要安裝pymysql(連結mysql用的),安裝