python約束 與MD5加密寫法

2021-10-14 20:59:20 字數 2107 閱讀 7484

python 中約束寫法有兩種

常用的通過繼承關係主動丟擲異常

通過抽象類+抽象方法

1 常用的通過繼承關係主動丟擲異常寫法

在本send方法中報錯不會丟擲異常,

class

basemessage

(object):

defsend

(self)

:"""

必須繼承basemessage,然後其中必須編寫send方法。用於完成具體業務邏輯。

"""raise notimplementederror(

".send() 必須被重寫."

)# 主動拋異常notimplementederror,用exception也行但顯得不專業

# raise exception(".send() 必須被重寫.")

class

email

(basemessage)

:# 繼承 basemessage 必須約束有send方法才行

defsend

(self)

:pass

# 傳送郵件類

deff1

(self)

:pass

deff2

(self)

:pass

class

wechat

(basemessage)

:# 繼承 basemessage 必須約束有send方法才行

defsend

(self)

:pass

deff1

(self)

:pass

basemessage類用於約束,約束其派生類:保證派生類中必須編寫send方法,不然執行可能就會報錯。

2 通過抽象類+抽象方法 (不常用因為編寫麻煩)

'''

'''from abc import abcmeta,abstractmethod

class

base

(metaclass=abcmeta)

:# 抽象類

deff1

(self)

:print

(123

) @abstractmethod # 抽象方法裝飾器

deff2

(self)

:# 抽象方法

pass

class

foo(base)

:def

f2(self)

:print

(666

)obj = foo(

)obj.f1(

)

加密

加密是不可逆的,為了防止撞庫 必須有加鹽操作

import hashlib         # 匯入hashlib 模組

salt = b'2erer3asdfwerxdf34sdfsdfs90'

# 鹽 鹽必須是位元組碼

defmd5

(pwd)

:# 傳入密碼

# 例項化物件 加鹽

obj = hashlib.md5(salt)

# 寫入要加密的位元組

obj.update(pwd.encode(

'utf-8'))

# 獲取密文

return obj.hexdigest(

)# 21232f297a57a5a743894a0e4a801fc3 # 66fbdc0f98f68d69cd458b0cee975fe3

user =

input

("請輸入使用者名稱:"

)pwd =

input

("請輸入密碼:"

)if user ==

'oldboy'

and md5(pwd)

=='c5395258d82599e5f1bec3be1e4dea4a'

:print

('登入成功'

)else

:print

('登入失敗'

)

python約束 與MD5加密寫法

python 中約束寫法有兩種 1 常用的通過繼承關係主動丟擲異常 2 通過抽象類 抽象方法 1 常用的通過繼承關係主動丟擲異常寫法 在本send方法中報錯不會丟擲異常,class basemessage object defsend self 必須繼承basemessage,然後其中必須編寫sen...

MD5加密與python實現

全稱 md5訊息摘要演算法 英語 md5 message digest algorithm 一種被廣泛使用的密碼雜湊函式,可以產生出乙個128位 16位元組 的雜湊值 hash value 用於確保資訊傳輸完整一致。md5加密演算法是不可逆的,所以解密一般都是通過暴力窮舉方法,通過 的介面實現解密。...

python 使用md5加密

python中使用md5進行加密字串 author administrator coding utf 8 import hashlib aa 123456 需要加密的字串 defmd5encode str 建立md5物件 m hashlib.md5 m.update str 傳入需要加密的字串進行m...