谢谢你的帮助。
使用下面的示例脚本,我可以成功地解码一个(a) covid 疫苗接种条形码,并将json传递给我的应用程序(我已经用我的“绿色通行证”应用程序中的条形码对此进行了测试,这是可行的)。
然而,当我扫描一个(b)测试条形码(即抗基因测试,聚合酶链反应测试,.)从我们的地方当局并将字符串传递给脚本,相同的脚本返回"ValueError: base45字符串“.
当比较(a)疫苗接种base45代码和(b)测试base45代码时,在我的未受过训练的眼睛看来,两者都是合法的,但显然需要对(b)做一些其他的事情来使它成为有效的base45?
出于安全原因,我无法粘贴我的真实数据(敏感信息),所以也许可以帮助我找出为什么(b)不是base45而不查看整个字符串。所以你能帮我的唯一方法就是用条形码扫描器扫描你自己的(a)和(b),然后运行你通过我的脚本得到的两个字符串,或者你可能知道我们可以使用的任何公开可用的测试数据。太感谢了,伙计们!
import json
import sys
import zlib
import base45
import cbor2
from cose.messages import CoseMessage
# payload = SEE COMMENTS
print("decoding payload: "+ payload)
# decode Base45 (remove HC1: prefix)
decoded = base45.b45decode(payload)
# decompress using zlib
decompressed = zlib.decompress(decoded)
# decode COSE message (no signature verification done)
cose = CoseMessage.decode(decompressed)
# decode the CBOR encoded payload and print as json
print(json.dumps(cbor2.loads(cose.payload), indent=2))
https://stackoverflow.com/questions/70434293
复制相似问题