gpt4 book ai didi

java - 加密程序加密时返回奇怪的字符串,但解密后返回正确的字符串

转载 作者:行者123 更新时间:2023-12-02 13:15:13 25 4
gpt4 key购买 nike

我正在 Java 中执行异或加密。它加密一个字节数组,将其转换为字符串,然后打印该字符串。

但是,当我执行它时,我在输出中看到奇怪的“框”(Eclipse 控制台)。

算法代码:

for(int i = 0; i < messageArr.length; i++)
{
encryptedMessage[i] = (byte) (messageArr[i]^codebookArr[i]);
}

String eMessage = new String(encryptedMessage);
return eMessage;

main 方法:

String lMessage = e.xorEncrypt(message, codebook);
System.out.println("Encrypted message: " + lMessage);
String uMessage = e.xorEncrypt(lMessage, codebook);
System.out.println("Unencrypted message: " + uMessage);

当我运行此代码时,它会为加密字符串打印奇怪的“框”。但是,当它解密字符串时,我收到原始输出,表明加密算法有效。

为什么我收到加密输出的奇怪框,但解密时收到正确的字符串?

最佳答案

您可以在加密后使用 Base64 编码(这是最佳实践),这样您就不会收到奇怪的框,也不会在“旅行”中丢失特殊字符。

一个很好的引用:

Base64 Encoding in Java

你会得到一个类似这样的字符串:b2xkIGNyb3cgbWVkaWNpbmUgc2hvdw==

关于java - 加密程序加密时返回奇怪的字符串,但解密后返回正确的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43817750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com