我非常感兴趣地关注 Java 中的数字 covid 证书项目: https ://github.com/ehn-dcc-development/
更具体地说,对于 Java 和解码通行证: https ://github.com/GaetanoPiazzolla/greenpass-decode
使用此代码,解码我们从 QR 码读取的 base45 字符串,我们有:
byte[] bytecompressed = Base45.getDecoder().decode(withoutPrefix);
我想将这个相同的字符串编码回来,所以我正在尝试以下操作:
byte[] byteCompressedNew = Base45.getEncoder().encode(bytecompressed);
但这会导致以下错误:
线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:索引 -23 在 nl.minvws.encoding.Base45$Encoder.encode(Base45.java:74) 处超出长度 45 的范围
在 base45 模块中的这行代码:
result[resultIndex++] = toBase45[value % 45];
如果你能帮助我理解我做错了什么,那就太好了。
非常感谢你!