首页 > 解决方案 > java - 用分隔符理解字节数组

问题描述

我正在尝试阅读AADHAAR QR 码,这是印度的政府身份证。用户手册说 -

扫描的数据包含以下给定序列的数据字段,这些数据字段嵌入在字节数组中,字节值“255”的分隔符 -

我的问题是,

  1. 这是什么意思 ?
  2. 有人可以举例说明吗?

标签: javaarraysqr-codeaadhaar

解决方案


解码 Aadhaar QR 码包括第 3.2 章中印度唯一身份识别机构 (UIDAI)中概述的几个步骤:

前几个步骤是:

  • 将 Secure QR 码的 base10 值转换为 Big Integer。
  • 将大整数转换为字节数组。
  • 解压字节数组。
  • 从索引 0 到第一个分隔符值“255”读取字节数组的值,并将此字节数组值转换为编码为“ISO-8859-1”的字符串。我们将得到 Email_mobile_present_bit_indicator_value 为 0、1、2 或 3。

获得解压缩数组后,您可以简单地搜索数组中包含 -1 的第一个元素,这就是字节值 255 在 Java 中的样子,因为 Java 使用有符号整数作为字节。-1 之前的字节可以转换为字符串。

然后,这两个步骤对数组中的剩余数据重复几次,以提取更多值。

提取照片和签名略有不同,因为它们不是字符串而是二进制数据。同样,参考文档中描述了这些步骤。


推荐阅读