python之加密 解密

2021-08-23 12:39:42 字數 2250 閱讀 3294

編碼:將計算機中的字串按照一定的順序表示成二進位制資料的過程

描述具體

二進位制:

0/1 每乙個二進位制數字,表示一位,通常計算機中:0000 0001

位元組:二進位制資料~8位乙個位元組:0000 0001->1個位元組

字元:2個位元組->1個字元;通常情況下我們使用的字串~就是使用字元編碼的!

各國字元編碼都不一樣:

1、計算機-> 表示[英文本母、數字、部分特殊符號]->ascii編碼[0~256]

2、萬國碼,統一字元編碼[號稱可以統一全球範圍內任何語言的表示方式]

任何語言中的任何資料,都可以使用乙個字元來表示unicode編碼

3、中國有gb2312-> gbk -> gb18030

4、資料傳輸編碼:unicode transfer format 8 bit [utf-8]

python中的編碼解碼:

要命的規則:字串的編碼解碼,一直都是任何語言中乙個難點和重點

任何字串->都是由位元組組成的!

python3中:字元:(str);位元組(bytes)

字元->位元組:encode 編碼:將乙個字串編碼成計算機可以操作的二進位制資料

位元組->字元:decode 解碼:將乙個二進位制資料按照指定的編碼~解碼成自然資料

s = 「大**」   s:

x = s.encode(「utf-8」) x:

x-> b』\xb9\x00\xa5..』

x2 = x.decode(「utf-8」) x2:

x2-> 「大**」

什麼是加密:將乙個明文資料,按照指定的演算法,運算得到乙個其他的可以隱藏真實資訊的密文資料,這個過程稱為加密;處理的演算法稱為加密演算法;用到的關鍵資料稱為金鑰

什麼是解密:按照指定的演算法和關鍵資料,將乙個密文資料進行逆向運算得到正確的明文資料的過程成為解密操作

(1)、單向加密演算法:只能加密,不能解密的演算法

如:使用者賬號密碼(單向加密)儲存,此時任何人都不能檢視該使用者的明文密碼

流程->使用者輸入明文密碼->加密->和儲存的密文密碼進行比較->相等-成功

單向雜湊加密演算法-> md5加密

單項雜湊加密演算法-> shax加密

(2)、雙向加密演算法:可以加密,加密的資料可以解密得到明文資料

使用在更多的場景;資料進行加密傳輸->目標位址->解密得到明文資料進行處理

對稱加密:加密和解密使用相同的秘鑰;

python中的hashlib模組

hashlib主要提供字元加密功能,將md5和sha模組整合到了一起,支援md5,sha1, sha224, sha256, sha384, sha512等演算法

import hashlib

string = "beyongjie"

md5 = hashlib.md5()

md5.update(string.encode('utf-8')) #注意將字串轉碼

res = md5.hexdigest() #加密後的字串

print("md5加密結果:",res)

#其他加密都差不多

注意:hashlib 加密啊的字串型別為二進位制編碼,直接加密字串會報如下錯誤:

typeerror: unicode-objects must be encoded before hashing
有兩種方式可以將字串轉化為二進位制資料

string = "beyongjie"

shaa1 = hashlib.sha1()

shaa1.update(string.encode('utf-8'))

res = shaa1.hexdigest()

print("sha1採用encode轉換加密結果:",res)

shab1 = hashlib.sha1()

shab1.update(bytes(string,encoding='utf-8'))

res = shab1.hexdigest()

print("sha1採用byte轉換的結果:",res)

Python 加密解密

coding utf 8 import hashlib 加密解密 md5是最常見的摘要演算法,速度很快,生成結果是固定的128 bit位元組,通常用乙個32位的16進製制字串表示。md5 hashlib.md5 update md5.update hhhhhaaa print md5.hexdige...

des vue 加密解密 DES加密 解密

外掛程式描述 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法簡介 des data encryption standard 是發明最早的最廣泛使用的分組對稱加密演算法。des演算法的入口引數有三個 key data mode。其中k...

node之加密與解密

token 引入jsonwebtoken模組 對稱加密,乙個秘鑰進行加密解密 const crypto require crypto 產生token let obj let sec helloworld let res jwt.sign obj,sec,傳入加密的物件,秘鑰,加密方式 console...