python裡面的hashlib模組提供了很多加密的演算法,這裡介紹一下hashlib的簡單使用事例,用hashlib的md5演算法加密資料
import
hashlib
hash
=
hashlib.md5()
#md5物件,md5不能反解,但是加密是固定的,就是關係是一一對應,所以有缺陷,可以被對撞出來
hash
.update(bytes(
'admin'
,encoding
=
'utf-8'
))
#要對哪個字串進行加密,就放這裡
print
(
hash
.hexdigest())
#拿到加密字串
# hash2=hashlib.sha384()#不同演算法,hashlib很多加密演算法
# hash2.update(bytes('admin',encoding='utf-8'))
# print(hash.hexdigest())
hash3
=
hashlib.md5(bytes(
'abd'
,encoding
=
'utf-8'
))
''' 如果沒有引數,所以md5遵守乙個規則,生成同乙個對應關係,如果加了引數,
就是在原先加密的基礎上再加密一層,這樣的話引數只有自己知道,防止被撞庫,
因為別人永遠拿不到這個引數
'''
hash3.update(bytes(
'admin'
,encoding
=
'utf-8'
))
print
(hash3.hexdigest())
如圖為執行結果
這裡寫乙個利用md5進行使用者登陸**進行註冊之後密碼加密的基本事例,加深理解
#hashlib簡單使用
def
md5(arg):
#這是加密函式,將傳進來的函式加密
md5_pwd
=
hashlib.md5(bytes(
'abd'
,encoding
=
'utf-8'
))
md5_pwd.update(bytes(arg,encoding
=
'utf-8'
))
return
md5_pwd.hexdigest()
#返回加密的資料
def
log(user,pwd):
#登陸時候時候的函式,由於md5不能反解,因此登陸的時候用正解
with
open
(
'db'
,
'r'
,encoding
=
'utf-8'
) as f:
for
line
in
f:
u,p
=
line.strip().split(
'|'
)
if
u
=
=
user
and
p
=
=
md5(pwd):
#登陸的時候驗證使用者名稱以及加密的密碼跟之前儲存的是否一樣
return
true
def
register(user,pwd):
#註冊的時候把使用者名稱和加密的密碼寫進檔案,儲存起來
with
open
(
'db'
,
'a'
,encoding
=
'utf-8'
) as f:
temp
=
user
+
'|'
+
md5(pwd)
f.write(temp)
i
=
input
(
'1表示登陸,2表示註冊:'
)
if
i
=
=
'2'
:
user
=
input
(
'使用者名稱:'
)
pwd
=
input
(
'密碼:'
)
register(user,pwd)
elif
i
=
=
'1'
:
user
=
user
=
input
(
'使用者名稱:'
)
pwd
=
input
(
'密碼:'
)
r
=
log(user,pwd)
#驗證使用者名稱和密碼
if
r
=
=
true
:
print
(
'登陸成功'
)
else
:
print
(
'登陸失敗'
)
else
:
print
(
'賬號不存在'
)
這裡只簡單寫了乙個使用者的註冊以及登陸
PYTHON 之 常用模組
使用需要先導入 import calendar呼叫例子 calendar 獲取一年的日曆字串 引數 w 每個日期之間的間隔字元數 l 每週所占用的行數 c 每個月之間的間隔字元數 cal calendar.calendar 2017 print type cal print cal cal cale...
Python之常用模組
time模組 時間表示形式 1 時間戳 timestamp 通常來說,時間戳表示的是從1970年1月1日00 00 00開始按秒計算的偏移量。我們執行 type time.time 返回的是float型別。2 格式化的時間字串 format string 1988 09 29 3 元組 struct...
python常用模組之os模組
os模組可以處理檔案和目錄這些日常手動需要做的操作,比如常用的刪除檔案等。此外,os不受平台限制,非常方便。常用功能 1 os.name 顯示當前使用的平台 import os print os.name nt windows2 os.getcwd 顯示當前python指令碼工作路徑 print o...