【问题标题】:Decode and encode in Base45 in JavaJava中Base45解码和编码
【发布时间】:2021-08-21 20:36:22
【问题描述】:

我非常感兴趣地关注 java 中的数字 covid 证书项目: https://github.com/ehn-dcc-development/

更具体地说,对于 Java 和解码通行证: https://github.com/GaetanoPiazzolla/greenpass-decode

使用此代码,解码我们从二维码读取的 base45 字符串,我们有:

byte[] bytecompressed = Base45.getDecoder().decode(withoutPrefix);

我想将这个相同的字符串编码回来,所以我正在尝试以下操作:

byte[] byteCompressedNew = Base45.getEncoder().encode(bytecompressed);

但这会导致以下错误:

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常: 索引 -23 超出范围,长度为 45 nl.minvws.encoding.Base45$Encoder.encode(Base45.java:74)

base45模块中的这行代码:

result[resultIndex++] = toBase45[value % 45];

如果你能帮助我理解我做错了什么,那就太好了。

非常感谢!

【问题讨论】:

标签: java encoding base45


【解决方案1】:

您需要将您的依赖项从版本 0.0.2 更新到 0.0.3(于 2021 年 4 月 6 日发布,并针对此问题进行了错误修复)

io.github.ehn-digital-green-development:base45:0.0.3

对于 Maven:

<dependency>
  <groupId>io.github.ehn-digital-green-development</groupId>
  <artifactId>base45</artifactId>
  <version>0.0.3</version>
</dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 2023-03-16
    • 1970-01-01
    • 2016-12-29
    • 2019-02-08
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多