java - 制作 BigInteger 的副本

标签 java arrays byte biginteger

作为我大学作业的一部分,我被要求编写 RSA 算法来加密用户消息。我的加密代码在这里:

BigInteger byte_message = new BigInteger(user_message.getBytes());
BigInteger encrypted_message = byte_message.modPow(public_key, modulus);

然后,对于解密,我的代码当前是:

BigInteger cipher = new BigInteger(encrypted_message);
BigInteger decrypted_message = cipher.modPow(private_key, modulus);

Java 向我抛出的错误是:

**The constructor BigInteger(BigInteger) is undefined. 
1 quick fix available: Change type of 'encrypted_message' to 'byte[]'**

如何将加密消息从字节转换为 BigInteger,以便我可以运行代码的 modPow 部分?

非常感谢任何帮助!

最佳答案

encrypted_message 已经是 BigInteger。无需从中构造一个新的 BigInteger,因为您只需将其分配给 cipher:

BigInteger cipher = encrypted_message;

另请注意,BigInteger(如String)是不可变的,因此(通常)没有理由创建一个等于以下内容的新BigInteger实例您已经拥有的一个。

关于java - 制作 BigInteger 的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50243010/

相关文章:

c++ - 读取二进制数据寻找十六进制序列

c++ - 将 char[2] 转换为 unsigned short 时出错?

java - 我应该比较我类(class)的 "equals"方法中的所有字段吗?

ios - Swift:如何从 UIImage 数组中提取图像文件名

c# - 如何正确且一致地从字符串中获取字节以进行 AES 加密?

python - 使用 2D 掩码和整个矩阵运算索引的 3D 或 4D Numpy 数组

c# - 通过两个参数对数组进行排序

java - 在客户端运行使用 Maven 创建的 Jar 文件

java - 使用 lambda 迭代集合时使用 setter 方法

java - 在 NetBeans 中将 jar 文件添加到 codenameone