gpt4 book ai didi

java - 编码字符串是否有最大的 Base64 大小?

转载 作者:行者123 更新时间:2023-11-30 05:44:06 24 4
gpt4 key购买 nike

我正在使用 Base64 对包含数千个数据的非常大的 JSON 字符串进行编码,编码后我将存储在磁盘上。稍后我再次从磁盘检索并将其再次解码为可读的普通字符串 JSON。

public static String encryptString(String string) {     
byte[] bytesEncoded = Base64.getMimeEncoder().encode(string.getBytes());
return (new String(bytesEncoded));
}

public static String decryptString(String string) {
byte[] bytesDecoded = Base64.getMimeDecoder().decode(string);
return (new String(bytesDecoded));
}

Base64 编码和解码函数的大小是否存在限制?或者我可以编码和解码超大字符串吗?

最佳答案

没有最大大小,但我还想建议不同的方法来加密解密

加密

public static String encrypt(String strClearText,String strKey) throws Exception{
String strData="";

try {
SecretKeySpec skeyspec=new SecretKeySpec(strKey.getBytes(),"Blowfish");
Cipher cipher=Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, skeyspec);
String isoText = new String(strClearText.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); // there are shorthand ways of doing this, but this is for your explaination
byte[] encrypted=cipher.doFinal(isoText.getBytes(StandardCharsets.ISO_8859_1));
strData=Base64.getEncoder().encodeToString(encrypted);

} catch (Exception e) {
e.printStackTrace();
throw new Exception(e);
}
return strData;
}

解密

public static String decrypt(String strEncrypted,String strKey) throws Exception{
String strData="";

try {
SecretKeySpec skeyspec=new SecretKeySpec(strKey.getBytes(),"Blowfish");
Cipher cipher=Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, skeyspec);
byte[] decrypted=cipher.doFinal(Base64.getDecoder().decode(strEncrypted));
isoStrData=new String(decrypted, StandardCharsets.ISO_8859_1);
strData=new String(isoStrData.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
} catch (Exception e) {
e.printStackTrace();
throw new Exception(e);
}
return strData;
}

key 在程序中可以始终是常量,但不建议这样做。

关于java - 编码字符串是否有最大的 Base64 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55138701/

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