欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統(tǒng) 1625 0

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

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

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

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加密和加鹽的方法,實(shí)現(xiàn)簡(jiǎn)單的用戶注冊(cè),將信息儲(chǔ)存在字典中,然后模擬登陸。

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

import hashlib,random

#注冊(cè)
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ī)給的,每注冊(cè)一個(gè)賬號(hào)給一次鹽,封裝在Users類里面,在login函數(shù)里比較相等時(shí),
    # a.salt是注冊(cè)時(shí)封裝好的鹽,這時(shí)是固定的鹽,所以只要賬號(hào)密碼對(duì)了就可以了。
    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ù)中,只要用戶輸入的密碼+封裝好的鹽正確,即可實(shí)現(xiàn)登陸

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 九九九久久久久久久爱 | 99成人免费视频 | 午夜精品一区二区三区免费视频 | 性视频欧美 | 国产小视频在线观看免费 | 婷婷久久五月天 | 夜夜春精品视频 | 天天天天天天操 | 亚洲欧美日韩在线一区二区三区 | 亚洲欧美中文在线观看4 | 九七婷婷狠狠成人免费视频 | 99影视在线视频免费观看 | 色综合97天天综合网 | 国产精品久久久久久无遮挡 | 国产成人一区二区三区 | 亚洲最大成人综合 | 免费成人福利视频 | 成人欧美s视频在线观看 | 99在线精品视频在线观看 | 91精品国产欧美一区二区 | 色妞妞视频 | 亚洲国产成人精彩精品 | 在线观看日韩中文字幕 | 日韩极品视频 | 久久综合综合久久 | 日产国产欧美视频一区精品 | 精品视频手机在线观看免费 | 一级毛片在线完整免费观看 | 国产区视频在线观看 | 久草视频播放 | 精品久久中文久久久 | 欧美高清hd | 综合97 | 国产精品18 | 天天射天天干 | 亚洲天堂成人网 | 波多野结衣综合 | 一级特黄aa大片欧美 | 99在线国产 | 亚洲精品第五页中文字幕 | 国产欧美精品一区二区三区 |