我正在发送这个apdu命令来将数据写入智能卡:
0xFF, 0xD6, 0x00, 0x01, 0x10, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc,0xc
这是命令中数据所在的部分:
0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc,0xc
现在我该如何写大量的数据…?例如,假设我有一个图像的字节数组…我怎么把它写到智能卡上?
@vlp给出的链接问题很好地解决了技术问题。(重哈希:LC必须信号扩展长度,所以它被传输为长指示器0,hi-lc, lo-lc,然后是命令数据字段,然后是le-high, le-low),所以我退后一点。
更基本的问题是:在智能卡上存储图片有什么好处?对于护照卡来说,图像和一些指纹当然是有用的,对读取和修改图像的严格访问控制(如果允许的话)是必不可少的属性。
但这是一个特殊情况。智能卡处理起来很复杂,既没有很高的通信带宽,也没有足够的存储容量,因此sd类型的存储卡可能是更合适的方法。如果安全是一个问题,您可以将图片以加密形式存储在云中,并使用智能卡访问相应的密钥。
在现实世界中有许多类似的问题,比如在一个巨大的数据团上生成数字签名。而卡片可以计算哈希值并签名,这种方法需要将整个blob发送到卡。然而,大多数情况下,哈希值是在外部计算的,出于性能原因,卡只计算签名。