将元组中的元素转换为类似字节的对象
Convert an element in tuple to a bytes-like object
我正在尝试对一些 RSA 加密数据进行 base64 编码,但是 RSA 加密 returns 元组和 base64 编码需要类似字节的对象。
File "C:\PATH\AppData\Local\Continuum\anaconda3\lib\base64.py", line 58, in b64encode encoded = binascii.b2a_base64(s, newline=False)
TypeError: 需要类似字节的对象,而不是 'tuple'
我正在寻找解决此问题的最佳方法的建议。
from Crypto.Cipher import AES
from Crypto.PublicKey import RSA
def rsa_encrypt(data):
return pub_keyObj.encrypt(data, 32)
def rsa_encrypt_base64(data):
return base64.standard_b64encode(rsa_encrypt(data))
encrypted_data = aes_encode(data, key, iv) #AES encoding is working fine
print("EncryptedString: ", rsa_encrypt_base64(encrypted_data))
在这一行 return base64.standard_b64encode(rsa_encrypt(data))
中,像这样添加 0
的索引:
return base64.standard_b64encode(rsa_encrypt(data)[0])
它将解决您的问题。
问题是 rsa_encrypt
将 returns 一个包含两个项目的元组。第一项是与明文相同类型(字符串或长)的密文。第二项总是 None.
有关详细信息,请参阅 Here。
我正在尝试对一些 RSA 加密数据进行 base64 编码,但是 RSA 加密 returns 元组和 base64 编码需要类似字节的对象。
File "C:\PATH\AppData\Local\Continuum\anaconda3\lib\base64.py", line 58, in b64encode encoded = binascii.b2a_base64(s, newline=False)
TypeError: 需要类似字节的对象,而不是 'tuple'
我正在寻找解决此问题的最佳方法的建议。
from Crypto.Cipher import AES
from Crypto.PublicKey import RSA
def rsa_encrypt(data):
return pub_keyObj.encrypt(data, 32)
def rsa_encrypt_base64(data):
return base64.standard_b64encode(rsa_encrypt(data))
encrypted_data = aes_encode(data, key, iv) #AES encoding is working fine
print("EncryptedString: ", rsa_encrypt_base64(encrypted_data))
在这一行 return base64.standard_b64encode(rsa_encrypt(data))
中,像这样添加 0
的索引:
return base64.standard_b64encode(rsa_encrypt(data)[0])
它将解决您的问题。
问题是 rsa_encrypt
将 returns 一个包含两个项目的元组。第一项是与明文相同类型(字符串或长)的密文。第二项总是 None.
有关详细信息,请参阅 Here。