java - java - 用分隔符理解字节数组
问题描述
我正在尝试阅读AADHAAR QR 码,这是印度的政府身份证。用户手册说 -
扫描的数据包含以下给定序列的数据字段,这些数据字段嵌入在字节数组中,字节值“255”的分隔符 -
- 参考编号
- 姓名
- 出生日期
我的问题是,
- 这是什么意思 ?
- 有人可以举例说明吗?
解决方案
解码 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 之前的字节可以转换为字符串。
然后,这两个步骤对数组中的剩余数据重复几次,以提取更多值。
提取照片和签名略有不同,因为它们不是字符串而是二进制数据。同样,参考文档中描述了这些步骤。
推荐阅读
- firebase-realtime-database - Firebase 实时数据库到 Firestore
- excel - 在 Excel VBA 中为不同的目标值添加多个范围
- tags - 如何使用 NextJs 安装 LinkedIn Insight 标签
- r - 相关图(Corrplot 热图)显示显着性水平但行和列会不同(选中)?
- sql - 两个使用可为空字段相互引用的 sql 表:陷阱?
- java-8 - Java 8流:通过对象中对象内部的属性获取对象列表
- python - Nginx-ajax-django:页面上出现 504 超时错误,错误日志:上游超时(110:连接超时),TTFB>1
- python - 如何取消嵌套熊猫中一列的“字典式”值?
- aws-lambda - 管理 multipart/form-data API Gateway 请求正文中的文件
- python - 使用类处理 if else 函数,但不能在 elif 函数中使用变量