如何将大整数转换为 Java 加密库的 key ? 我正在尝试使用我自己生成的共享 diffie hellman key 作为 AES 加密的 key 值。
下面是我使用的代码
BigInteger bi; long value = 1000000000;
bi = BigInteger.valueOf(value); Key key = new Key (bi);
但是它没有起作用。 我可以知道如何将 BigInteger 值转换为 Key 值吗?
提前致谢!
最佳答案
首先,你无法施放它。 BigInteger
类和 Key
接口(interface)之间没有关系。
其次,Key
是一个接口(interface)而不是类,因此您无法创建它的实例。您需要创建的是某个实现Key
的类的实例。它很可能需要是一个特定的实现类,而不是(比如说)匿名类。
最后一点是,Java 加密 API 旨在隐藏 key 的表示形式。要从字节创建 key ,您需要创建一个 KeySpec
对象;例如SecretKeySpec(byte[] key, String algorithm)
),然后使用 KeyFactory
从中“生成” key 。典型的 KeySpec
构造函数采用 byte[]
作为参数,因此您首先需要从 BigInteger
实例获取字节数组。
关于java - 将 BigInteger 转换为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758905/