[python] M2Crypto와 함께 사용하기 좋은 다른 Python 모듈은 무엇이 있나요?

Contents

requests

requests는 HTTP 요청을 보내는 데 사용되는 인기있는 Python 라이브러리입니다. M2Crypto를 사용하여 SSL로 보호된 웹 사이트에 요청을 보낼 때 requests를 함께 사용하면 편리합니다.

import requests
from M2Crypto import Rand, SSL
Rand.load_file('randpool.dat')
ctx = SSL.Context()
ctx.set_cipher_list('HIGH')
requests.get('https://example.com', verify=True, cert=('path_to_cert.pem', 'path_to_key.pem'))

pyOpenSSL

pyOpenSSL은 OpenSSL의 기능에 대한 Python 바인딩을 제공하는 라이브러리입니다. M2Crypto와 유사한 기능을 제공하며 SSL/TLS 통신 및 암호화 작업을 수행하는 데 사용됩니다.

from OpenSSL import SSL
ssl_ctx = SSL.Context(SSL.SSLv23_METHOD)
ssl_ctx.set_cipher_list('HIGH')
c = SSL.Connection(ssl_ctx)
c.connect((host, port))

cryptography

cryptography는 암호화, 디코드 및 서명을 위한 강력한 도구를 제공하는 Python 라이브러리입니다. M2Crypto와 함께 사용하여 데이터 암호화 및 디코드 작업을 수행할 수 있습니다.

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import serialization
from M2Crypto.EVP import Cipher

message = b'Hello, world!'
key = b'sixteenbytekey'
cipher = Cipher(alg='aes_128_cbc', key=key, iv='\0' * 16, op=1, padding=1)
ciphertext = cipher.update(message)
ciphertext += cipher.final()

이러한 Python 모듈을 M2Crypto와 함께 사용함으로써 SSL 통신, 암호화 및 디코드 작업을 보다 효과적으로 수행할 수 있습니다.