什么是javacard数据存储的最佳解决方案?

时间:2014-03-01 07:48:05

标签: smartcard data-storage javacard persistent-storage

正如我在GitHub中看到的,MuscleApplet已经过时了。我想知道在Java智能卡上持久存储数据的最佳方法是什么?

数据由姓名,家庭,图片和描述组成。

所有字段都有动态长度,因此我不想为每个字段考虑一个静态字节数组。

1 个答案:

答案 0 :(得分:1)

我会回答你问题的编程部分。

有三种方法可以在Applet中存储动态数据:

  1. 创建在个性化时创建的字节数组。只有在卡片已经个性化(即处于操作阶段)时属性是静态的,这才有用。

  2. 为每张卡创建一个静态字节数组,并在个性化过程中保存长度。这样做的缺点是每个属性都有一个最大大小,但现在可以配置大小,即使在运营阶段也是如此。

  3. 使用多字节数组和基本类型创建数据结构,并为其动态分配/释放字节数组。

  4. 请注意,要释放内存(对于选项3),您将不得不依赖Java Card运行时提供的 - 相当原始且可能不可用的 - 垃圾收集。

    另请注意,如果您有许多卡所有者,则需要计算每个人的最大内存使用量。如果您希望每个用户能够存储相同数量的属性,那么为每个字段分配最大大小应该不是问题。