$ pip3 install base32hex
import base32hex import hashlib from Crypto.Cipher import DES from Crypto.Random import get_random_bytes password = "Password" salt = '\x28\xAB\xBC\xCD\xDE\xEF\x00\x33' key = password + salt m = hashlib.md5(key) key = m.digest() (dk, iv) = (key[:8], key[8:]) crypter = DES.new(dk, DES.MODE_CBC, iv) plain_text = "hello world" print("The plain text is:", plain_text) plain_text += '\x00' * (8 - len(plainn_text) % 8) ciphertext = crypter.encrypt(plain_text) encode_string = base32hex.b32encode(ciphertext) print("the encoded string is : ", encode_string)
Traceback (most recent call last):
File “aes.py”, line 9, in
m = hashlib.md5(key)
TypeError: Unicode-objects must be encoded before hashing
pyDesを使用します。
$ pip3 install pyDes
https://github.com/twhiteman/pyDes
from pyDes import * data = "Please encrypt my data" k = des("DESCRYPT", CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5) d = k.encrypt(data) print(d) print(k.decrypt(d))
b’o\xceSef\xe6\xa6\x8f\x82\x98\xc7V\xd0I\xdc\x03\x1e\x97\xe4\x99&\x07\x9cI’
b’Please encrypt my data’