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

詳解python中的hashlib模塊的使用

 更新時間:2019年04月22日 09:28:40   作者:一葉孤舟難罷休  
這篇文章主要介紹了python中的hashlib模塊的使用,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下

hashlib

hashlib主要提供字符加密功能,將md5和sha模塊整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法

hashlib模塊

#哈希算法也叫摘要算法,相同的數(shù)據(jù)始終得到相同的輸出,不同的數(shù)據(jù)得到不同的輸出。
#(1)哈希將不可變的任意長度的數(shù)據(jù),變成具有固定長度的唯一值
#(2)字典的鍵值對映射關(guān)系是通過哈希計算的,哈希存儲的數(shù)據(jù)是散列(無序)

# 應(yīng)用場景:在需要效驗功能時使用
 用戶密碼的 => 加密,解密
 相關(guān)效驗的 => 加密,解密

hashlib中的MD5算法

# 第一步是引包
import hashlib
# 創(chuàng)建一個md5算法的對象
hs = hashlib.md5()
# print(hs)
# update中的 參數(shù)必須是二進制字節(jié)流 
hs.update("123".encode())
## hexdigest 返回32位十六進制的字符串(固定長度)
## 用一個hsvar來接收經(jīng)過哈希算法返回的值
hsvar = hs.hexdigest()

#加鹽 (就是在簡單的算法中進行加入混肴參數(shù))

語法格式如下:

#首先在實例化hashlib中的MD5對象的時候,加入混淆參數(shù)key,以此達到更加復(fù)雜的加密)

#加入的key參數(shù)一定也要是字節(jié)流
hs2 = hashlib.md5("abcd".encode())
hs2.update("123123".encode())
hs2var = hs2.hexdigest()

加鹽后的好處就是,增加了加密的安全性,使其不那么容易被破解

但因為hash算法是被公開的算法,其安全性不那么好,一些簡單的加密 值很容易被逆向破解出來,說逆向破解也不那么準(zhǔn)確,

一般來說,破解此類算法只能使用窮舉法, 可以將 跑出來的值存入到一個大的數(shù)據(jù)庫中,哈希算法得出的值有唯一性,所以可以反向查詢已有的hash值來得到原始數(shù)據(jù),當(dāng)然這種網(wǎng)站也有, 我百度上看到的一個網(wǎng)站,你們可以進去看一看,一般的哈希值都能查詢到原數(shù)據(jù),只要他們數(shù)據(jù)庫中有的話.

所以說最好的方法就是我們要加鹽,去加入復(fù)雜混肴參數(shù),這樣的話大大提高了數(shù)據(jù)加密的安全性

鏈接: https://www.cmd5.com/  md5解密(本鏈接只作為學(xué)習(xí)使用,勿將其使用到任何非法用途)

在開發(fā)編程中,常用到hash算法的方面應(yīng)該有用戶的注冊登錄

下面有我寫的一個實例,供大家參考(為了方便大家的閱讀,這個注冊登錄功能我沒有完善,比如說用正則去卡用戶名和密碼的格式等等,)

import hashlib
#定義一個加密函數(shù),將傳入的參數(shù)轉(zhuǎn)換成32位的哈希值并返回
def md5(pwd):
  md5_password = hashlib.md5("abd".encode())
  md5_password.update(pwd.encode())
  return md5_password.hexdigest()
#定義一個登錄函數(shù),將傳入的賬號密碼與本地密碼文件進行匹配,如果匹配到返回True
def login(user,pwd):
  with open("database","r",encoding="utf-8") as fp:
    for line in fp :
      u,p = line.strip().split("|")
      if u == user and p == md5(pwd):
        return True
#定義一個注冊的函數(shù),將用戶傳入的賬號密碼寫入到本地的密碼文件中
def register(user,pwd):
  with open("database","w",encoding="utf-8") as fp:
    temp = user+ "|" + md5(pwd)
    fp.write(temp)
#index菜單,給用戶的交互
choice = input("1表示登錄, 2表示注冊:").strip()
if choice == "2":
  user = input("用戶名:")
  pwd = input("密碼:")
  register(user,pwd)
elif choice == "1":
  user = input("用戶名:")
  pwd = input("密碼:")
  r = login(user,pwd)
  if r == True:
    print("登錄成功")
  else:
    print("登錄失敗")
else:
  print("賬號不存在")

 hashlib中的sha算法

•# sha 加密效率低,算法精密,安全性高
•sha: Secure Hash Algorithm(安全哈希算法)

   sha是美國國家標(biāo)準(zhǔn)與技術(shù)研究院與美國國家安全局設(shè)計,從94年以來被廣泛使用的加密算法.sha系列中的sha1, sha224, sha2556適用于長度不超過2^64二進制位的消息。sha384和sha512適用于長度不超過2^128二進制位的消息。不過,這個也不太安全.2005年的時候國內(nèi)王小云教授及其團隊在sha1算法的破譯上就已經(jīng)取得了很大的成就.今年谷歌已經(jīng)攻破了sha1算法.另外,Matthew Green(https://twitter.com/matthew_d_green)在這一領(lǐng)域也有不錯的成就.

import hashlib
#實例化sha1對象
hs3 = hashlib.sha1()
#去將要去加密的數(shù)據(jù)通過一個方法放入對象中
hs3.update('123123'.encode())
#調(diào)用對象中的方法,計算并輸出加密后的40位的哈希值
hsvar = hs3.hexdigest()

sha算法常用的有 sha1 sha512等,語法一樣,只不過輸出的哈希值的長度不一樣,所以就不一一列舉了

總結(jié)

以上所述是小編給大家介紹的python中的hashlib模塊的使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Django卸載之后重新安裝的方法

    Django卸載之后重新安裝的方法

    如果你打算從過去的一個版本升級Django, 你需要先刪除老版本的Django之后,再安裝新的版本。下面這篇文章主要給大家介紹了在Django卸載之后重新安裝的方法,文中給出了詳細的步驟,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • TensorFlow實現(xiàn)保存訓(xùn)練模型為pd文件并恢復(fù)

    TensorFlow實現(xiàn)保存訓(xùn)練模型為pd文件并恢復(fù)

    今天小編就為大家分享一篇TensorFlow實現(xiàn)保存訓(xùn)練模型為pd文件并恢復(fù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中常用的統(tǒng)計檢驗代碼分享

    Python中常用的統(tǒng)計檢驗代碼分享

    統(tǒng)計檢驗是數(shù)據(jù)分析中的重要工具,用于檢驗數(shù)據(jù)集中的差異、關(guān)聯(lián)和分布等統(tǒng)計性質(zhì),本文為大家整理了常見的統(tǒng)計檢驗方法,希望對大家有所幫助
    2024-01-01
  • python 虛擬環(huán)境的創(chuàng)建與使用方法

    python 虛擬環(huán)境的創(chuàng)建與使用方法

    本文先介紹虛擬環(huán)境的基礎(chǔ)知識以及使用方法,然后再深入介紹虛擬環(huán)境背后的工作原理,需要的朋友可以參考下
    2021-06-06
  • 基于Python解密仿射密碼

    基于Python解密仿射密碼

    這篇文章主要介紹了基于Python解密仿射密碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python圖像濾波處理操作示例【基于ImageFilter類】

    Python圖像濾波處理操作示例【基于ImageFilter類】

    這篇文章主要介紹了Python圖像濾波處理操作,結(jié)合實例形式分析了Python基于ImageFilter類實現(xiàn)的濾波處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • 教你如何使用Python下載B站視頻的詳細教程

    教你如何使用Python下載B站視頻的詳細教程

    這篇文章主要介紹了教你如何使用Python下載B站視頻的詳細教程,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python批量爬取圖片的方法詳解

    python批量爬取圖片的方法詳解

    這篇文章給大家介紹了如何使用python批量爬取圖片,文中通過代碼示例給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • python?Pangu自動美化中文排版工具使用探索

    python?Pangu自動美化中文排版工具使用探索

    這篇文章主要為大家介紹了python?Pangu自動美化中文排版工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 在python中獲取div的文本內(nèi)容并和想定結(jié)果進行對比詳解

    在python中獲取div的文本內(nèi)容并和想定結(jié)果進行對比詳解

    今天小編就為大家分享一篇在python中獲取div的文本內(nèi)容并和想定結(jié)果進行對比詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

金塔县| 涿州市| 扎兰屯市| 仲巴县| 海盐县| 新野县| 稻城县| 贵德县| 周宁县| 霍州市| 西青区| 玛多县| 深圳市| 奉化市| 二连浩特市| 井陉县| 正安县| 南召县| 循化| 宜城市| 延寿县| 侯马市| 江油市| 龙胜| 同德县| 东山县| 鹤岗市| 龙山县| 保德县| 深水埗区| 腾冲县| 兴义市| 榕江县| 昭觉县| 岚皋县| 泰州市| 黄浦区| 岳阳市| 新干县| 许昌县| 象州县|