常見加密方式和Python實現

Python 算法 瀏覽器 python猿 2019-07-12

前言

我們所說的加密方式,都是對二進制編碼的格式進行加密的,對應到Python中,則是我們的Bytes。

將字符串和Bytes互相轉換可以使用encode()和decode()方法。

常見加密方式和Python實現

URL編碼

正常的URL中是隻能包含ASCII字符的,也就是字符、數字和一些符號。而URL編碼就是一種瀏覽器用來避免url中出現特殊字符(如漢字)的編碼方式。

常見加密方式和Python實現

Base64編碼

Base64是一種用64個字符來表示任意二進制數據的方法。

Base64編碼可以稱為密碼學的基石。可以將任意的二進制數據進行Base64編碼。所有的數據都能被編碼為並只用65個字符就能表示的文本文件。

Python內置的base64模塊可以直接進行base64的編解碼

常見加密方式和Python實現

MD5(信息-摘要算法)

message-digest algorithm 5(信息-摘要算法)。經常說的“MD5加密”,就是信息摘要算法。

md5,其實就是一種算法。可以將一個字符串,或文件,或壓縮包,執行md5後,就可以生成一個固定長度為128bit的串。這個串,基本上是唯一的。

特點

  • 壓縮性:任意長度的數據,算出的MD5值長度都是固定的。
  • 容易計算:從原數據計算出MD5值很容易。
  • 抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所得到的MD5值都有很大區別。
  • 強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。
  • 不可逆性

由於MD5模塊在python3中被移除,在python3中使用hashlib模塊進行md5操作

常見加密方式和Python實現

DES

DES算法為密碼體制中的對稱密碼體制,又被稱為美國數據加密標準。

DES是一個分組加密算法,典型的DES以64位為分組對數據加密,加密和解密用的是同一個算法。

DES算法的入口參數有三個:Key、Data、Mode。其中Key為7個字節共56位,是DES算法的工作密鑰;Data為8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。

密鑰長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1),分組後的明文組和56位的密鑰按位替代或交換的方法形成密文組。

常見加密方式和Python實現

AES

高級加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

常見加密方式和Python實現

AES為分組密碼,分組密碼也就是把明文分成一組一組的,每組長度相等,每次加密一組數據,直到加密完整個明文。在AES標準規範中,分組長度只能是128位,也就是說,每個分組為16個字節(每個字節8位)。密鑰的長度可以使用128位、192位或256位。密鑰的長度不同,推薦加密輪數也不同。

常見加密方式和Python實現

RSA

RSA加密算法是一種非對稱加密算法。在公開密鑰加密和電子商業中RSA被廣泛使用。

因為RSA加密算法的特性,RSA的公鑰私鑰都是10進制的,但公鑰的值常常保存為16進制的格式,所以需要將其用int()方法轉換為10進制格式。

常見加密方式和Python實現

相關推薦

推薦中...