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

用python的哈希函數(shù)對密碼加密

 更新時間:2022年02月07日 08:36:13   作者:沃特陌  
大家好,本篇文章主要講的是用python的哈希函數(shù)對密碼加密,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下

今天我將教大家如何用哈希函數(shù)將密碼加密
加密后的密碼是很難倒推的~

普通加密:

首先調(diào)用函數(shù)hashlib

import hashlib

然后使用哈希函數(shù)對密碼進行加密
這里我使用sha256進行加密

再造一個密碼出來

password = 'wotemo666'

接著用哈希函數(shù)對它進行加密

注意:這里要使用encode對password進行編碼格式聲明,不然會報錯

未聲明編碼格式報錯

hash_password = hashlib.sha256(password.encode("utf-8")).hexdigest()
print(hash_password)

運行這行代碼輸出的就是加密后的哈希值啦?。?!

哈希值輸出

圖中這行字符串就是 ‘wotemo666’ 對應的哈希值

每個明文對應一個哈希值,但一個哈希值卻對應無數(shù)個明文
這就導致哈希值是不可逆的,這樣,你的密碼就更加安全啦~

下面是完整的代碼

# 首先調(diào)用函數(shù)hashlib
import hashlib
# 再造一個密碼出來
password = 'wotemo666'
# 用sha256對password進行加密
hash_password = hashlib.sha256(password.encode("utf-8")).hexdigest()
# 輸出對應的哈希值
print(hash_password)

進階加密:

如果想讓你的密碼更加的安全,那就要給你的密碼加點鹽

這里的加鹽就是指在明文密碼前或后插入一段隨機字符串,然后再進行哈希加密

這樣得出來的哈希值就更加的復雜,就更不容易被破解啦

下面我們來實現(xiàn)吧

首先調(diào)用random函數(shù)隨機生成“鹽”

import random

這里我們要用到python中的string模塊生成a ~ Z和0 ~ 9的所有字符

調(diào)用string模塊

import string

String模塊中的常量:

string.digits:數(shù)字0~9

string.ascii_letters:所有字母(大小寫)

string.lowercase:所有小寫字母

string.printable:可打印字符的字符串

string.punctuation:所有標點

string.uppercase:所有大寫字母

這里我們只需用到前兩個digits和ascii_letters就可以了

ps:如果想密碼更復雜一些可以使用punctuation生成所有標點,然后一同加入到鹽中去

這里我們使用while和random函數(shù)隨機生成可以控制長度的鹽

先創(chuàng)建一個激活while的變量和一個儲存鹽的空白字符串

active = 0
salts = ''

接著用while生成鹽

 while active < 10:
        # 用active激活while
        # 這里生成了一個長度為20的鹽
        # 想要生成多長的鹽,就將示例中的10改為期望長度的一半
        # 但這里的值最好是整數(shù)
        salt_one = random.choice(string.digits)
        # salt_one生成一個隨機的數(shù)字
        salt_two = random.choice(string.ascii_letters)
        # salt_two生成一個隨機的字母(區(qū)分大小寫)
        salt = salt_one + salt_two
        #salt是它們的加和,這也就是為什么前面要減半
        salts += salt
        # 然后將加和后的值附加到剛才創(chuàng)建的空白字符串中
        active += 1
        # while函數(shù)基本用法我就不多說了

這樣鹽就生成出來啦,如圖:

生成鹽的值

接下來,我們將鹽附加到明文密碼上

after_salt_password = salts + password
# 鹽的前后順序無所謂,password為你的密碼

然后,我們再調(diào)用hashlib生成哈希值

這里的操作就和前面的一模一樣了,唯一不同的是密碼加鹽了

# 首先調(diào)用函數(shù)hashlib
import hashlib
# 再造一個密碼出來
password = 'wotemo666'
# 然后加鹽
after_salt_password = salts + password
# 用sha256對password進行加密
hash_password = hashlib.sha256(after_salt_password.encode("utf-8")).hexdigest()

加鹽后的哈希值就更為復雜了

加鹽后的哈希值

下面是完整的代碼

# 調(diào)用random, string, hashlib函數(shù)
import random
import string
import hashlib

# 初始化
active = 0
salts = ''

while active < 10:
        # 用active激活while
        # 這里生成了一個長度為20的鹽
        # 想要生成多長的鹽,就將示例中的10改為期望長度的一半
        # 但這里的值最好是整數(shù)
        salt_one = random.choice(string.digits)
        # salt_one生成一個隨機的數(shù)字
        salt_two = random.choice(string.ascii_letters)
        # salt_two生成一個隨機的字母(區(qū)分大小寫)
        salt = salt_one + salt_two
        #salt是它們的加和,這也就是為什么前面要減半
        salts += salt
        # 然后將加和后的值附加到剛才創(chuàng)建的空白字符串中
        active += 1
        # while函數(shù)基本用法我就不多說了

password = 'wotemo666'
# 然后加鹽
after_salt_password = salts + password
# 用sha256對password進行加密
hash_password = hashlib.sha256(after_salt_password.encode("utf-8")).hexdigest()
# hash_password就是輸出的哈希值
print(hash_password)

你學會了嗎?

到此這篇關(guān)于用python的哈希函數(shù)對密碼加密的文章就介紹到這了,更多相關(guān)python哈希函數(shù)加密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何通過python檢查文件是否被占用

    如何通過python檢查文件是否被占用

    這篇文章主要介紹了如何通過python檢查文件是否被占用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python中的相關(guān)分析correlation analysis的實現(xiàn)

    Python中的相關(guān)分析correlation analysis的實現(xiàn)

    這篇文章主要介紹了Python中的相關(guān)分析correlation analysis的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python使用CMD模塊更優(yōu)雅的運行腳本

    Python使用CMD模塊更優(yōu)雅的運行腳本

    這篇文章主要介紹了Python使用CMD模塊更優(yōu)雅的運行腳本的方法,實例分析了Python中cmd模塊的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • POC漏洞批量驗證程序Python腳本編寫

    POC漏洞批量驗證程序Python腳本編寫

    這篇文章主要為大家介紹了POC漏洞批量驗證程序Python腳本編寫的完整示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • 零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲

    零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲

    前面的文章我們介紹了Python爬蟲框架Scrapy的安裝與配置等基本資料,本文我們就來看看如何使用Scrapy框架方便快捷的抓取一個網(wǎng)站的內(nèi)容,隨便選個小站(dmoz.org)來示例吧
    2014-11-11
  • python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程

    python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程

    這篇文章主要介紹了python 在服務(wù)器上調(diào)用數(shù)據(jù)庫特別慢的解決過程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • python3 http.client/server post傳輸json問題

    python3 http.client/server post傳輸json問題

    這篇文章主要介紹了python3 http.client/server post傳輸json問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 使用Python實現(xiàn)3D曲線擬合

    使用Python實現(xiàn)3D曲線擬合

    曲線擬合是數(shù)據(jù)分析和數(shù)學建模領(lǐng)域中廣泛使用的技術(shù),它涉及到尋找最接近一組數(shù)據(jù)點的數(shù)學函數(shù)的過程,本文我們將討論如何使用SciPy庫在Python中執(zhí)行3D曲線擬合,感興趣的小伙伴可以了解下
    2023-11-11
  • python?pandas遍歷每行并累加進行條件過濾方式

    python?pandas遍歷每行并累加進行條件過濾方式

    這篇文章主要介紹了python?pandas遍歷每行并累加進行條件過濾方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Pyqt5如何讓QMessageBox按鈕顯示中文示例代碼

    Pyqt5如何讓QMessageBox按鈕顯示中文示例代碼

    這篇文章主要給大家介紹了關(guān)于Pyqt5如何讓QMessageBox按鈕顯示中文的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Pyqt5具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04

最新評論