object - 在 Java Card 中将对象转换为 byte[]

标签 object serialization deserialization smartcard javacard

如何在 Java Card 小程序中将对象(PublicKey 的实例)转换为 byte[],反之亦然?

我正在使用 Java Card 2.1.1 和 JCDK 2.1.2。

最佳答案

Java Card 不提供任何内置机制来将 PublicKey 对象(或一般对象)序列化为字节数组或将字节数组反序列化回对象。

因此,您需要手动执行此类序列化/反序列化。对于实现 PublicKey 接口(interface)的对象,这意味着您首先需要找出它是哪种类型的 key 对象,例如RSAPublicKey。例如,如果您知道公钥是 RSAPublicKey,则可以提取类型 (getType())、大小 (getSize())、指数 (getExponent()) 和模数 (getModulus()) 参数并将它们存储到字节数组中。稍后,您可以通过提取这些值并使用 KeyBuilder.buildKey() 方法实例化一个新键来反序列化字节数组。

关于object - 在 Java Card 中将对象转换为 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996318/

相关文章:

java自定义类不可序列化

javascript - 通过循环构建 JSON 数组

java - 如何将 Java 对象从一个类传递到另一个类

.net - XML 反序列化 : Deserialize missing element into null property value

java.io.StreamCorruptedException : invalid type code: 3F when I customize serialization process

json - .NET 核心 : Remove null fields from API JSON response

java - 使用 Gson 反序列化复杂的 JSON

javascript - 如何在 JavaScript 中将字符串转换为对象数组

Android 可打包问题

c# - MongoDB 在 InsertOne 上抛出 "MongoDB.Bson.BsonSerializationException"