java - 将 BigInteger 转换为键

标签 java encryption aes

如何将大整数转换为 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/

相关文章:

java - Android 项目 - 所需工具

java - 我应该如何将Servlet中的响应发送到前端?

java - 一个愚蠢的问题: How can I recognize a jar file among a bunch of files?

python - 获取长十六进制哈希值

Java SimpleXML 使用类属性填充内部对象

C RC4 super 奇怪的行为

java - 将字符串转换为 AES 的 128 位 key

c++ - JAVA(AES/CBC/PKCS5PADDING)对应的C/C++是什么

php - 如何在 PHP 中进行 AES256 解密?

android - AES Gingerbread