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

關(guān)于python中密碼加鹽的學(xué)習(xí)體會小結(jié)

 更新時間:2019年07月15日 09:23:20   作者:python_neophyte  
這篇文章主要介紹了關(guān)于python中密碼加鹽的學(xué)習(xí)體會小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

給密碼加密是什么:用戶注冊的密碼一般網(wǎng)站管理人員會利用md5方法加密,這種加密方法的好處是它是單向加密的,也就是說,你只有在提前知道某一串密碼對應(yīng)的md5加密碼,才能反推出密碼是多少,雖然有極小的幾率可能造成兩個密碼加密之后的值相等(這種現(xiàn)象稱為碰撞),不過基本上不用擔(dān)心,因為概率是極低的。在常用的hashlib模塊里還有sha1()等方法,它的本質(zhì)和md5是一致的,只是產(chǎn)生的結(jié)果是160 bit字節(jié),通常用一個40位的16進(jìn)制字符串表示。而md5是最常見的加密算法,生成速度很快,生成結(jié)果是固定的128 bit字節(jié),通常用一個32位的16進(jìn)制字符串表示。

給密碼加鹽是什么:見上面提到的,下面內(nèi)容摘自百度百科,是對彩虹表的大概定義和解釋,出于預(yù)先防止黑客利用彩虹表反推盜用用戶的密碼賬戶信息,就需要給密碼加‘鹽',其實簡單來說,就是在hashlib模塊中的md5加密方法時,傳入一個你自己想給的鹽,或者干脆隨機(jī)生成(比較安全,將鹽封裝在類中)。

彩虹表是一個用于加密散列函數(shù)逆運算的預(yù)先計算好的表, 為破解密碼的散列值(或稱哈希值、微縮圖、摘要、指紋、哈希密文)而準(zhǔn)備。一般主流的彩虹表都在100G以上。 這樣的表常常用于恢復(fù)由有限集字符組成的固定長度的純文本密碼。

md5和sha1加密介紹

import hashlib

md5=hashlib.md5()
md5.update('this is an example'.encode('utf-8'))
md5.update('again'.encode('utf-8')) #這里要記得update()方法可以多次調(diào)用,可以自己試一試。
print(md5.hexdigest()) 
#承接上面
sha1=hashlib.sha1()
sha1.update('this is an example'.encode('utf-8'))
sha1.update('...'.encode('utf-8'))
print(sha1.hexdigest())

下面利用md5加密和加鹽的方法,實現(xiàn)簡單的用戶注冊,將信息儲存在字典中,然后模擬登陸。

#!/usr/bin/python3
#-*-coding:UTF-8-*-

import hashlib,random

#注冊
storage={}

def registration(u,p):
  if u in storage:
    return 'username occupied.please choose another username...'
  else:
    storage[u]=Users(u,p)


#加密方法
def get_md5(s):
  return hashlib.md5(s.encode('utf-8')).hexdigest()

#登陸
class Users(object):
  def __init__(self,username,password):
    self.username=username #!!!!!!!注意鹽是隨機(jī)給的,每注冊一個賬號給一次鹽,封裝在Users類里面,在login函數(shù)里比較相等時,
    # a.salt是注冊時封裝好的鹽,這時是固定的鹽,所以只要賬號密碼對了就可以了。
    self.salt=''.join([chr(random.randint(48,122)) for i in range(20)])
    self.password=get_md5(password+self.salt)

def login(user,pw):
  if user not in storage.keys():
    return 'wrong username'
  else:
    a=storage[user]
    if a.password==get_md5(pw+a.salt):
      return 'succeeded'
    else:
      return 'wrong password'

registration('mary','12345')
registration('bob','aa895')
registration('kirk','ba155')
print(storage)
print(login('mary','12345'))

最重要是理解每一次的鹽都封裝好了,在login函數(shù)中,只要用戶輸入的密碼+封裝好的鹽正確,即可實現(xiàn)登陸

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

相關(guān)文章

  • python的concat等多種用法詳解

    python的concat等多種用法詳解

    這篇文章主要為大家詳細(xì)介紹了python的concat等多種用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python入門語句基礎(chǔ)之if語句、while語句

    python入門語句基礎(chǔ)之if語句、while語句

    本文介紹了python入門語句基礎(chǔ)之if語句、while語句,if?語句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對集合中的每個元素都一個代碼塊,而?while?循環(huán)不斷地運行,直到指定的條件不滿足為止,本文通過示例代碼詳解介紹,需要的朋友參考下吧
    2022-04-04
  • Linux(Redhat)安裝python3.6虛擬環(huán)境(推薦)

    Linux(Redhat)安裝python3.6虛擬環(huán)境(推薦)

    這篇文章主要介紹了Linux(Redhat)安裝python3.6虛擬環(huán)境,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下
    2018-05-05
  • 詳解Django+uwsgi+Nginx上線最佳實戰(zhàn)

    詳解Django+uwsgi+Nginx上線最佳實戰(zhàn)

    這篇文章主要介紹了Django+uwsgi+Nginx上線最佳實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python如何把多個PDF文件合并代碼實例

    Python如何把多個PDF文件合并代碼實例

    這篇文章主要介紹了Python如何把多個PDF文件合并,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 將python依賴包打包成window下可執(zhí)行文件bat方式

    將python依賴包打包成window下可執(zhí)行文件bat方式

    今天小編就為大家分享一篇將python依賴包打包成window下可執(zhí)行文件bat方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 基于Python實現(xiàn)用戶管理系統(tǒng)

    基于Python實現(xiàn)用戶管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于Python實現(xiàn)用戶管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 解析PyCharm集成GitLab代碼倉的問題

    解析PyCharm集成GitLab代碼倉的問題

    這篇文章主要介紹了PyCharm集成GitLab代碼倉的相關(guān)知識,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • python條件和循環(huán)的使用方法

    python條件和循環(huán)的使用方法

    下面我們來介紹python條件語句和循環(huán)語句的使用方法。
    2013-11-11
  • python實現(xiàn)調(diào)用攝像頭并拍照發(fā)郵箱

    python實現(xiàn)調(diào)用攝像頭并拍照發(fā)郵箱

    這篇文章主要介紹了python實現(xiàn)調(diào)用攝像頭并拍照發(fā)郵箱的程序,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04

最新評論