python

python js爬虫如何进行数据加密和解密

小樊
126
2024-12-12 05:11:46
栏目: 编程语言

在Python和JavaScript中进行数据加密和解密,通常需要使用一些加密库。这里我将分别为你提供Python和JavaScript的示例代码,以展示如何使用AES加密和解密数据。

Python 示例:

首先,你需要安装pycryptodome库,可以使用以下命令安装:

pip install pycryptodome

然后,你可以使用以下代码进行AES加密和解密:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64

def encrypt(data, key):
    cipher = AES.new(key, AES.MODE_CBC)
    ct_bytes = cipher.encrypt(pad(data.encode('utf-8'), AES.block_size))
    iv = base64.b64encode(cipher.iv).decode('utf-8')
    ct = base64.b64encode(ct_bytes).decode('utf-8')
    return iv + ':' + ct

def decrypt(encrypted_data, key):
    iv, ct = encrypted_data.split(':')
    iv = base64.b64decode(iv)
    ct = base64.b64decode(ct)
    cipher = AES.new(key, AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(ct), AES.block_size).decode('utf-8')

key = get_random_bytes(16)
data = 'Hello, World!'

encrypted_data = encrypt(data, key)
print('Encrypted data:', encrypted_data)

decrypted_data = decrypt(encrypted_data, key)
print('Decrypted data:', decrypted_data)

JavaScript 示例:

在JavaScript中,你可以使用crypto-js库进行AES加密和解密。首先,你需要安装这个库:

npm install crypto-js

然后,你可以使用以下代码进行AES加密和解密:

const CryptoJS = require('crypto-js');

function encrypt(data, key) {
    const iv = CryptoJS.lib.WordArray.random(16);
    const encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv });
    return iv.concat(encrypted.ciphertext).toString(CryptoJS.enc.Base64);
}

function decrypt(encryptedData, key) {
    const [iv, ciphertext] = encryptedData.split(':');
    const decodedIV = CryptoJS.enc.Base64.parse(iv);
    const decodedCiphertext = CryptoJS.enc.Base64.parse(ciphertext);
    const decrypted = CryptoJS.AES.decrypt({ ciphertext: decodedCiphertext }, key, { iv: decodedIV });
    return decrypted.toString(CryptoJS.enc.Utf8);
}

const key = CryptoJS.lib.WordArray.random(16).toString();
const data = 'Hello, World!';

const encryptedData = encrypt(data, key);
console.log('Encrypted data:', encryptedData);

const decryptedData = decrypt(encryptedData, key);
console.log('Decrypted data:', decryptedData);

这些示例代码展示了如何在Python和JavaScript中使用AES加密和解密数据。请注意,为了确保数据安全,你需要妥善保管加密密钥。

0
看了该问题的人还看了