盘点 90% Python 爬虫中的常见加密算法(Python爬虫中90%常见的加密算法大盘点)

原创
ithorizon 6个月前 (10-21) 阅读数 24 #后端开发

Python爬虫中90%常见的加密算法大盘点

一、引言

在Python爬虫领域,我们经常性会遇到各种加密算法。这些算法对于保护数据平安和防止恶意爬取起到了关键作用。本文将为您盘点Python爬虫中90%常见的加密算法,帮助您更好地懂得和应对这些加密手段。

二、对称加密算法

对称加密算法是指加密和解密使用相同的密钥。以下是一些常见的对称加密算法:

1. AES加密

AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法。以下是一个使用Python实现AES加密和解密的示例:

import base64

from Crypto.Cipher import AES

# AES加密

def aes_encrypt(data, key):

iv = b'1234567890123456' # 初始化向量

cipher = AES.new(key, AES.MODE_CBC, iv)

data = data.encode('utf-8')

data += b' ' * (AES.block_size - len(data) % AES.block_size)

encrypted_data = cipher.encrypt(data)

return base64.b64encode(encrypted_data).decode('utf-8')

# AES解密

def aes_decrypt(encrypted_data, key):

iv = b'1234567890123456'

cipher = AES.new(key, AES.MODE_CBC, iv)

encrypted_data = base64.b64decode(encrypted_data)

decrypted_data = cipher.decrypt(encrypted_data)

return decrypted_data.strip().decode('utf-8')

key = b'1234567890123456'

data = 'Hello, World!'

encrypted_data = aes_encrypt(data, key)

decrypted_data = aes_decrypt(encrypted_data, key)

print(f'加密后: {encrypted_data}')

print(f'解密后: {decrypted_data}')

2. DES加密

DES(Data Encryption Standard)是一种较早的对称加密算法。以下是一个使用Python实现DES加密和解密的示例:

from Crypto.Cipher import DES

# DES加密

def des_encrypt(data, key):

iv = b'12345678' # 初始化向量

cipher = DES.new(key, DES.MODE_CBC, iv)

data = data.encode('utf-8')

data += b' ' * (DES.block_size - len(data) % DES.block_size)

encrypted_data = cipher.encrypt(data)

return encrypted_data.hex()

# DES解密

def des_decrypt(encrypted_data, key):

iv = b'12345678'

cipher = DES.new(key, DES.MODE_CBC, iv)

encrypted_data = bytes.fromhex(encrypted_data)

decrypted_data = cipher.decrypt(encrypted_data)

return decrypted_data.strip().decode('utf-8')

key = b'12345678'

data = 'Hello, World!'

encrypted_data = des_encrypt(data, key)

decrypted_data = des_decrypt(encrypted_data, key)

print(f'加密后: {encrypted_data}')

print(f'解密后: {decrypted_data}')

三、非对称加密算法

非对称加密算法是指加密和解密使用不同的密钥。以下是一些常见的非对称加密算法:

1. RSA加密

RSA(Rivest-Shamir-Adleman)是最早的公钥密码系统之一。以下是一个使用Python实现RSA加密和解密的示例:

from Crypto.PublicKey import RSA

from Crypto.Cipher import PKCS1_OAEP

# 生成公钥和私钥

key = RSA.generate(1024)

private_key = key.export_key()

public_key = key.publickey().export_key()

# RSA加密

def rsa_encrypt(data, public_key):

public_key = RSA.import_key(public_key)

cipher = PKCS1_OAEP.new(public_key)

encrypted_data = cipher.encrypt(data.encode('utf-8'))

return encrypted_data.hex()

# RSA解密

def rsa_decrypt(encrypted_data, private_key):

private_key = RSA.import_key(private_key)

cipher = PKCS1_OAEP.new(private_key)

decrypted_data = cipher.decrypt(bytes.fromhex(encrypted_data))

return decrypted_data.decode('utf-8')

data = 'Hello, World!'

encrypted_data = rsa_encrypt(data, public_key)

decrypted_data = rsa_decrypt(encrypted_data, private_key)

print(f'加密后: {encrypted_data}')

print(f'解密后: {decrypted_data}')

2. ECC加密

ECC(Elliptic Curve Cryptography)是一种基于椭圆曲线的公钥密码系统。以下是一个使用Python实现ECC加密和解密的示例:

from ecdsa import SigningKey, NIST256p

# 生成公钥和私钥

private_key = SigningKey.generate(curve=NIST256p)

public_key = private_key.get_verifying_key()

# ECC加密

def ecc_encrypt(data, public_key):

public_key = public_key.to_pem()

encrypted_data = public_key + data.encode('utf-8')

return base64.b64encode(encrypted_data).decode('utf-8')

# ECC解密

def ecc_decrypt(encrypted_data, private_key):

encrypted_data = base64.b64decode(encrypted_data)

private_key = SigningKey.from_pem(private_key)

data = encrypted_data[len(private_key.to_pem()):]

return data.decode('utf-8')

data = 'Hello, World!'

encrypted_data = ecc_encrypt(data, public_key.to_pem())

decrypted_data = ecc_decrypt(encrypted_data, private_key.to_pem())

print(f'加密后: {encrypted_data}')

print(f'解密后: {decrypted_data}')

四、摘要算法

摘要算法是一种单向加密算法,重点用于验证数据的完整性。以下是一些常见的摘要算法:

1. MD5算法

MD5(Message-Digest Algorithm 5)是一种广泛使用的摘要算法。以下是一个使用Python实现MD5算法的示例:

import hashlib

# MD5加密

def md5_encrypt(data):

md5 = hashlib.md5()

md5.update(data.encode('utf-8'))

return md5.hexdigest()

data = 'Hello, World!'

encrypted_data = md5_encrypt(data)

print(f'加密后: {encrypted_data}')

2. SHA算法

SHA(Secure Hash Algorithm)是一种比MD5更平安的摘要算法。以下是一个使用Python实现SHA算法的示例:

import hashlib

# SHA加密

def sha_encrypt(data):

sha = hashlib.sha256()

sha.update(data.encode('utf-8'))

return sha.hexdigest()

data = 'Hello, World!'

encrypted_data = sha_encrypt(data)

print(f'加密后: {encrypted_data}')

五、总结

本文为您盘点了Python爬虫中90%常见的加密算法,包括对称加密算法、非对称加密算法和摘要算法。懂得和掌握这些加密算法对于应对爬虫中的加密数据具有重要意义。在实际应用中,我们需要通过具体场景选择合适的加密算法,确保数据的平安性和有效性。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门