gpt4 book ai didi

java - Glassfish 和 Tomcat 中 decodeBase64 的不同结果

转载 作者:行者123 更新时间:2023-11-28 22:42:14 24 4
gpt4 key购买 nike

我有一个用特殊字符编码的值,然后使用 base64 再次编码,我的开发环境是标准的,使用 Netbeans glassfish 服务器,但站点托管在 Tomcat 服务器上,我似乎得到完全相同的不同结果解密代码/函数,它在 netbeans 中完美运行,但在 tomcat 上失败,导致我的特殊字符解码代码失败,因为字符不相同

String key = enc_key;

// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");

// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey);
strDecrypted = new String(cipher.doFinal(Base64.decodeBase64(encrypted.getBytes())));

任何建议:-( ?

最佳答案

您正在使用 String(byte[])构造函数而不指定编码。不要那样做。

同样,不要调用 String.getBytes()也没有指定编码。您在向我们展示的代码中做了两次 - 我的猜测是您在加密数据时这样做了。 始终指定您要使用的编码。

现在我们不知道是哪个Base64您正在使用的类,但我个人会尝试找到一种接受 String 的方法解码开始 - Base64 在逻辑上是一个 byte[] <==> String转换方案,所以在一个像样的 API 中你会有 String encode(byte[])byte[] decode(String) .

关于java - Glassfish 和 Tomcat 中 decodeBase64 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27129435/

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