作为我大学作业的一部分,我被要求编写 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/