python加解密詳解 爬蟲常見

2021-09-05 11:54:52 字數 1928 閱讀 2374

在做爬蟲資料抓取的很多時候post請求引數中重要的資料都是經過js的加密,js中常常加密的js函式有以下幾種:

普及一下各種加密演算法

base64編碼(基礎)

單項雜湊函式 md5、sha1、sha256、sha512等

訊息認證碼 hmac-md5、hmac-sha1

對稱加密 des|3des|aes(高階加密標準)

非對稱加密 rsa

數字簽名

證書

base64理論上這個不可以稱為加密,只是將文字按照一定的編碼格式重新寫一遍罷了,但是可以起到一定的加密作用。

pyhon**實現:

# 加密

import base64

def encode64(data):

# 注意 轉碼的型別必須是bytes,如果是str型別需要進行encode

return base64.b64encode(data.encode("utf-8"))

# 解密

def decode64(data):

return base64.b64decode(data)

data = "abcd"

encode = encode64(data)

print("加密結果為:",encode)

print("解密結果為:",decode64(data))

執行完成之後的結果是:

加密結果為: b'ywjjza=='

解密結果為: b'i\xb7\x1d'

rsa非對稱加密

由 rsa 公司發明,是乙個支援變長金鑰的公共金鑰演算法,需要加密的檔案塊的長度也是可變的非對稱加密系統, 又稱公鑰金鑰加密。 非對稱加密為資料的加密與解密提供了一種非常安全的方式。使用了一對金鑰, 私鑰和公鑰。 私鑰只能有一方安全保管(伺服器), 不能外洩, 而公鑰可以發給任何請求的人。非對稱加密使用這對金鑰中的乙個進行加密, 而解密卻需要乙個另外乙個金鑰。 目前最常用的非對稱加密演算法是rsa演算法。公鑰機制靈活,但加密和解密速度卻比對稱金鑰(aes)加密慢得多。 公鑰機制靈活, 但是加密和解密速度卻要比堆成加密慢很多。

-安裝庫:cryptodome (pip3 install pycryptodome)之前的crypto已經沒有更新維護

python**實現為:

from crypto.cipher import  pkcs1_v1_5 as cipher

from crypto.publickey import rsa

#獲取公鑰

def get_public_key():

url = "「

rsp = requests.get(url, verify=false)

public = rsp.json()['data']

key = """-----begin rsa private key-----\n{}\n-----end rsa private key-----""".format(

public)

return key

def encrypt(publice,string):

""" 傳入公鑰以及需要解密的string"""

publice_key = rsa.importkey(public,string)

cipher = cipher.new(publice_key)

cipher_text = base64.b64encode(cipher.encrypt(bytes(string, encoding="utf-8")))

cipher_text = cipher_text.decode('utf-8')

return cipher_text

常見加解密

簡介 常見的對資料進行加密,解密演算法分為以下幾類 1 單向加密演算法 2 對稱加密演算法 3 非對稱加密演算法 一.單向加密演算法 這種演算法,只能加密,不能解密,是不可逆的,所以叫做單向加密演算法 摘要演算法 這種演算法通常被用作對資料簽名 1.md5 摘要演算法是乙個不可逆過程,無論多大資料,...

常見加解密方法 轉

常用加密解密方法 常見用於保證安全的加密或編碼演算法如下 金鑰演算法用來對敏感資料 摘要 簽名等資訊進行加密,常用的金鑰演算法包括 des data encryption standard 資料加密標準,速度較快,適用於加密大量資料的場合 3des triple des 是基於des,對一塊資料用三...

常見加密方法解析 python加解密應用

加密就是把明文通過處理變成密文 解密就是把密文解析成明文 加密的操作物件是 位元組碼,也就是bytes型別 所以對字串進行加密時,必須先將 str 轉換成 bytes 型別 轉換方法 encode 將 str 轉換成 bytes decode 將 bytes 轉換成 str計算機的儲存單位 byte...