From 7aeeb2c1c37dede0faecef11cbc8fb09ba299f3c Mon Sep 17 00:00:00 2001 From: codezjx Date: Wed, 12 Sep 2018 19:46:01 +0800 Subject: [PATCH] #14 Enhancement: pycrypto was deprecated, use pycryptodome instead. --- ncm/encrypt.py | 8 ++++---- requirements.txt | 2 +- setup.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ncm/encrypt.py b/ncm/encrypt.py index a214e85..6ace3be 100644 --- a/ncm/encrypt.py +++ b/ncm/encrypt.py @@ -4,7 +4,7 @@ import os import base64 import json import binascii -from Crypto.Cipher import AES +from Cryptodome.Cipher import AES from ncm.constants import modulus, nonce, pub_key @@ -12,7 +12,7 @@ from ncm.constants import modulus, nonce, pub_key def encrypted_request(text): text = json.dumps(text) sec_key = create_secret_key(16) - enc_text = aes_encrypt(aes_encrypt(text, nonce), sec_key) + enc_text = aes_encrypt(aes_encrypt(text, nonce), sec_key.decode('utf-8')) enc_sec_key = rsa_encrypt(sec_key, pub_key, modulus) data = {'params': enc_text, 'encSecKey': enc_sec_key} return data @@ -21,8 +21,8 @@ def encrypted_request(text): def aes_encrypt(text, sec_key): pad = 16 - len(text) % 16 text = text + chr(pad) * pad - encryptor = AES.new(sec_key, 2, '0102030405060708') - cipher_text = encryptor.encrypt(text) + encryptor = AES.new(sec_key.encode('utf-8'), AES.MODE_CBC, b'0102030405060708') + cipher_text = encryptor.encrypt(text.encode('utf-8')) cipher_text = base64.b64encode(cipher_text).decode('utf-8') return cipher_text diff --git a/requirements.txt b/requirements.txt index ddc65e3..d1ce047 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ requests>=2.17.3 -pycrypto>=2.6.1 +pycryptodomex mutagen>=1.38.0 Pillow>=4.3.0 \ No newline at end of file diff --git a/setup.py b/setup.py index 6eb33c7..8a6cb03 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( packages=find_packages(), install_requires=[ 'requests>=2.17.3', - 'pycrypto>=2.6.1', + 'pycryptodomex', 'mutagen>=1.38.0', 'Pillow>=4.3.0', ],