RSA签署包含字节对象的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

我有一个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_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”,这将导致数据损坏尝试使用此示例,您将看到数据在解码后损坏。