前言
我們所說(shuō)的加密方式,都是對(duì)二進(jìn)制編碼的格式進(jìn)行加密的,對(duì)應(yīng)到Python中,則是我們的Bytes。
將字符串和Bytes互相轉(zhuǎn)換可以使用encode()和decode()方法。
URL編碼
正常的URL中是只能包含ASCII字符的,也就是字符、數(shù)字和一些符號(hào)。而URL編碼就是一種瀏覽器用來(lái)避免url中出現(xiàn)特殊字符(如漢字)的編碼方式。
Base64編碼
Base64是一種用64個(gè)字符來(lái)表示任意二進(jìn)制數(shù)據(jù)的方法。
Base64編碼可以稱為密碼學(xué)的基石。可以將任意的二進(jìn)制數(shù)據(jù)進(jìn)行Base64編碼。所有的數(shù)據(jù)都能被編碼為并只用65個(gè)字符就能表示的文本文件。
Python內(nèi)置的base64模塊可以直接進(jìn)行base64的編解碼
MD5(信息-摘要算法)
message-digest algorithm 5(信息-摘要算法)。經(jīng)常說(shuō)的“MD5加密”,就是信息摘要算法。
md5,其實(shí)就是一種算法。可以將一個(gè)字符串,或文件,或壓縮包,執(zhí)行md5后,就可以生成一個(gè)固定長(zhǎng)度為128bit的串。這個(gè)串,基本上是唯一的。
特點(diǎn)
-
壓縮性:任意長(zhǎng)度的數(shù)據(jù),算出的MD5值長(zhǎng)度都是固定的。
-
容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易。
-
抗修改性:對(duì)原數(shù)據(jù)進(jìn)行任何改動(dòng),哪怕只修改1個(gè)字節(jié),所得到的MD5值都有很大區(qū)別。
-
強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個(gè)具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。 不可逆性
由于MD5模塊在python3中被移除,在python3中使用hashlib模塊進(jìn)行md5操作
DES
DES算法為密碼體制中的對(duì)稱密碼體制,又被稱為美國(guó)數(shù)據(jù)加密標(biāo)準(zhǔn)。
DES是一個(gè)分組加密算法,典型的DES以64位為分組對(duì)數(shù)據(jù)加密,加密和解密用的是同一個(gè)算法。
DES算法的入口參數(shù)有三個(gè):Key、Data、Mode。其中Key為7個(gè)字節(jié)共56位,是DES算法的工作密鑰;Data為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。
密鑰長(zhǎng)64位,密鑰事實(shí)上是56位參與DES運(yùn)算(第8、16、24、32、40、48、56、64位是校驗(yàn)位,使得每個(gè)密鑰都有奇數(shù)個(gè)1),分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組。
AES
高級(jí)加密標(biāo)準(zhǔn)(英語(yǔ):Advanced Encryption Standard,縮寫:AES),在密碼學(xué)中又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。
AES為分組密碼,分組密碼也就是把明文分成一組一組的,每組長(zhǎng)度相等,每次加密一組數(shù)據(jù),直到加密完整個(gè)明文。在AES標(biāo)準(zhǔn)規(guī)范中,分組長(zhǎng)度只能是128位,也就是說(shuō),每個(gè)分組為16個(gè)字節(jié)(每個(gè)字節(jié)8位)。密鑰的長(zhǎng)度可以使用128位、192位或256位。密鑰的長(zhǎng)度不同,推薦加密輪數(shù)也不同。
RSA
RSA加密算法是一種非對(duì)稱加密算法。在公開密鑰加密和電子商業(yè)中RSA被廣泛使用。
因?yàn)镽SA加密算法的特性,RSA的公鑰私鑰都是10進(jìn)制的,但公鑰的值常常保存為16進(jìn)制的格式,所以需要將其用int()方法轉(zhuǎn)換為10進(jìn)制格式。
可以添加Python交流學(xué)習(xí)QQ群:1015615067,可免費(fèi)領(lǐng)取Python資料!
網(wǎng)站:http://tool.chacuo.net/cryptdes
更多文章、技術(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ì)您有幫助就好】元
