RSA签署包含字节对象的python词典?
我有一个python字典作为证书,我想使用RSA签署包含字节对象的python词典?,python,json,dictionary,cryptography,Python,Json,Dictionary,Cryptography,我有一个python字典作为证书,我想使用加密模块对其进行RSA签名。问题是,我无法将字典对象转换为字节对象。字典看起来像: ISSUER = b"RSA AUTHORITY" SUBJECT = b"Domain.com" SUBJECT_PUBLIC_KEY = rsa_public_key_bytes all_data = {} all_data["SUBJECT"] = subject_name all_dat
加密
模块对其进行RSA签名。问题是,我无法将字典
对象转换为字节
对象。字典看起来像:
ISSUER = b"RSA AUTHORITY"
SUBJECT = b"Domain.com"
SUBJECT_PUBLIC_KEY = rsa_public_key_bytes
all_data = {}
all_data["SUBJECT"] = subject_name
all_data["SUBJECT_PUBLIC_KEY"] = subject_public_key
all_data["ISSUER"] = issuer_name
JSON拒绝接受包含字节对象的对象。因为JSON格式不支持字节,只支持unicode字符串 您必须使用以下方法将值转换为Unicode:
import base64
import json
ISSUER = b"RSA AUTHORITY"
SUBJECT = b"Domain.com"
SUBJECT_PUBLIC_KEY = b'sabich'
all_data = {}
all_data["SUBJECT"] = SUBJECT
all_data["SUBJECT_PUBLIC_KEY"] = SUBJECT_PUBLIC_KEY
all_data["ISSUER"] = ISSUER
def decode_dict(d):
for k, v in d.items():
d[k] = v.decode('utf-8')
return d
all_data = decode_dict(all_data)
# {'SUBJECT': 'Domain.com', 'SUBJECT_PUBLIC_KEY': 'sabich', 'ISSUER': 'RSA AUTHORITY'}
x = json.dumps(all_data)
print(all_data)
您将编码为base-64,然后将字节解码回“ASCII”,这将导致数据损坏尝试使用此示例,您将看到数据在解码后损坏。