将hex()转换为pycryptodome密文格式
Convert hex() to pycryptodome ciphertext format
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
new_file = open("md5_rehashed.txt", "w")
file_with_hashes = open('md5_hashed.txt', 'r')
key = RSA.importKey(open(received_message.decode('utf-8')).read())
cipher = PKCS1_OAEP.new(key)
for hash in file_with_hashes:
message = bytes(hash, 'utf-8')
ciphertext = cipher.encrypt(message)
new_file.write(ciphertext.hex().upper()+'\n')
file_with_hashes.close()
new_file.close()
我正在使用 PKCS1_OAEP 加密存储在本地文件中的字符串,
接下来我将密文转换为十六进制格式并将此 str 写入新的 .txt 文件。
在另一个 file.py 中,我需要读取新的 .txt 文件并解密文件的所有哈希值,问题是我找不到 ciphertext.hex() 格式的恢复形式密文格式.
有什么建议吗?
这是我的第二个代码file.py
hashed_file = open(hashed_file_route, 'r')
unhashed_file = open('md5_unhashed', 'w')
key = RSA.importKey(open('private.pem').read())
cipher = PKCS1_OAEP.new(key)
for hash_line in hashed_file:
print(hash_line)
print(codecs.encode(bytes(hash_line,'utf-8'),'hex_codec'))
message = cipher.decrypt(hash_line.encode('utf-8'))
unhashed_file.write(message+ '\n')
unhashed_file.close()
hashed_file.close()
PS:对不起我的英语
你应该使用bytes.fromhex(some_hex_string)
从十六进制字符串中恢复字节,如下:
message = cipher.decrypt(bytes.fromhex(hash_line))
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
new_file = open("md5_rehashed.txt", "w")
file_with_hashes = open('md5_hashed.txt', 'r')
key = RSA.importKey(open(received_message.decode('utf-8')).read())
cipher = PKCS1_OAEP.new(key)
for hash in file_with_hashes:
message = bytes(hash, 'utf-8')
ciphertext = cipher.encrypt(message)
new_file.write(ciphertext.hex().upper()+'\n')
file_with_hashes.close()
new_file.close()
我正在使用 PKCS1_OAEP 加密存储在本地文件中的字符串, 接下来我将密文转换为十六进制格式并将此 str 写入新的 .txt 文件。
在另一个 file.py 中,我需要读取新的 .txt 文件并解密文件的所有哈希值,问题是我找不到 ciphertext.hex() 格式的恢复形式密文格式.
有什么建议吗?
这是我的第二个代码file.py
hashed_file = open(hashed_file_route, 'r')
unhashed_file = open('md5_unhashed', 'w')
key = RSA.importKey(open('private.pem').read())
cipher = PKCS1_OAEP.new(key)
for hash_line in hashed_file:
print(hash_line)
print(codecs.encode(bytes(hash_line,'utf-8'),'hex_codec'))
message = cipher.decrypt(hash_line.encode('utf-8'))
unhashed_file.write(message+ '\n')
unhashed_file.close()
hashed_file.close()
PS:对不起我的英语
你应该使用bytes.fromhex(some_hex_string)
从十六进制字符串中恢复字节,如下:
message = cipher.decrypt(bytes.fromhex(hash_line))