我正在使用cbor2库对字节进行解码,但我想将这个过程逆转为编码
这是我的密码
import cbor2
cbor_data_decoded = cbor2.loads(b'\xd2\x84M\xa2\x01&\x04H\x0e\x1b)\x96VcIV\xa0Y\x01\x18\xa4\x01bNL\x04\x1aa\x97U\x98\x06\x1a`\xaa\x07\x989\x01\x03\xa1\x01\xa4cvere1.0.0cnam\xa4bfnjAchternaamcfntjACHTERNAAMbgnhVoornaamcgnthVOORNAAMcdobd1963av\x81\xaabtgi840539006bvpj1119305005bmpfCVnCoVbmamORG-100032020bdn\x01bsd\x06bdtj2021-02-18bcobGRbisx$Ministry of Health Welfare and Sportbcix/urn:uvci:01:NL:74827831729545bba1c279f592f2488aX@!\xd7\xdcs<\x139\xea\x9b\x1c;\n\x17\x8e\xdc+\xe3\x14t\x97\x9an\xc9\x1bq\xe8\x020\x0f\x8c\xd1\xe7\xda\xc8 \xc2\x91K\x93\xa7\xac\xf6=E\xd7/\xeb\xecQ>}\xc7\x11\x85ET\x0fy\xf3\x13q\xa9\ng')
print(cbor_data_decoded.value[2])
payload = cbor2.loads(cbor_data_decoded.value[2])
# reverse process
en = cbor2.dumps(payload)
print(en)因此,我想要得到第一个字节。
发布于 2022-04-06 13:37:39
看起来你在试图解码欧盟数字Covid证书。嵌入的数据用CBOR编码两次:
>>> from pprint import pprint
>>> pprint(cbor2.loads(cbor_data_decoded.value[2]))
{-260: {1: {'dob': '1963',
'nam': {'fn': 'Achternaam',
'fnt': 'ACHTERNAAM',
'gn': 'Voornaam',
'gnt': 'VOORNAAM'},
'v': [{'ci': 'urn:uvci:01:NL:74827831729545bba1c279f592f2488a',
'co': 'GR',
'dn': 1,
'dt': '2021-02-18',
'is': 'Ministry of Health Welfare and Sport',
'ma': 'ORG-100032020',
'mp': 'CVnCoV',
'sd': 6,
'tg': '840539006',
'vp': '1119305005'}],
'ver': '1.0.0'}},
1: 'NL',
4: 1637307800,
6: 1621755800}如果您感兴趣,我已经为棉花糖写了一个副词,其中包含了这些证书作为代码示例:https://github.com/Sekenre/marshmallow_cbor/blob/main/examples/dcc.py
https://stackoverflow.com/questions/71150766
复制相似问题