Python 每日一練 7

2022-06-21 04:54:12 字數 1113 閱讀 4305

# -*- coding:utf-8 -*-

# author:konmu

''' 密碼是如何加密後儲存起來的呢?請使用 python 對密碼加密。

'''import hashlib

from hmac import hmac

import random

def passwd_encrypt(password,salt=none):

if(salt is none):

salt = ''.join([chr(random.randint(48,122)) for i in range(20)])

safe_pass = hashlib.md5((password+salt).encode('utf-8')).hexdigest()[:10] #hashlib的方式

else:

safe_pass = hmac(bytes(password.encode('utf-8')),bytes(salt.encode('utf-8')),hashlib.md5).hexdigest()[:10]

#hmac演算法實現,這個演算法只能處理位元組型資料,所以要進行一下型別轉換

return(safe_pass)

if __name__ == "__main__":

old_pass = input("please input your password:")

salt = "iamsalt"

new_pass1 = passwd_encrypt(old_pass)

new_pass2 = passwd_encrypt(old_pass,salt)

print("your safe password:",new_pass1)

print("your safe password:",new_pass2)

please input your password:k0nmua4

your safe password: ea2cd5c2fb

your safe password: 1bf06bf616

由於通常我們註冊賬戶使用的密碼在8~18位,所以我們這裡選擇返回前10位做為密碼,長度上已符合

每日一練7

arraylist和linkedlist可想從名字分析,它們乙個是array 動態陣列 的資料結構,乙個是link 鍊錶 的資料結構,此外,它們兩個都是對list介面的實現。前者是陣列佇列,相當於動態陣列 後者為雙向鍊錶結構,也可當作堆疊 佇列 雙端佇列 當隨機訪問list時 get和set操作 a...

python每日一練

人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...

Python每日一練

人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...