我正在使用 El Gamal 密码系统,我的目标是能够加密和破译长文本序列。
El Gamal 要求明文是整数。我已经使用 Strings 的 .getBytes() 方法将我的字符串变成了 byte[],然后从 byte[] 中创建了一个 BigInteger。加密/解密后,我使用 BigIntegers 的 .toByteArray() 方法将 BigInteger 转换为 byte[],然后从 byte[] 创建一个新的 String 对象。
我使用的是 1035 位密钥,当我使用最多 129 个字符的字符串进行加密/解密时,这非常有效。使用 130 个或更多字符时,我的解密方法产生的输出是乱码。
有人可以建议如何解决这个问题吗?