繁体   English   中英

base64编码问题,java

[英]base64 encoding issue, java

我正在使用apache库进行base64编码。 但这次问题非常典型。 我有一个b64编码的字符串。

MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD/euDuzBjDANBgkqhkiG9w0BAQUFADCB"+
"5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn

它是证书(.CER)文件的一部分。 我只是解码它并再次编码它,但结果有点不同。 结果字符串是,

“MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD / euDuzBjDANBgkqhkiG9w0BAQUFADA”+“/ 5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn”

不同之处在于第一行的末尾和第二行的开头。 CBA /替换。

此更改使我的证书无效。 问题出在哪里?

问题在于您的中间字符串转换。 如果你只使用字节数组,一切都很好。

public static void main(String args[]) {
        String partOfCer = "MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD/euDuzBjDANBgkqhkiG9w0BAQUFADCB" + "5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn";
        byte[] dec1_byte = Base64.decodeBase64(partOfCer.getBytes());
//        String dec1 = new String(dec1_byte);
        byte[] newBytes = Base64.encodeBase64(dec1_byte);
        String newStr = new String(newBytes);
        System.out.println(partOfCer);
        System.out.println(newStr);
        System.out.println(partOfCer.equals(newStr));
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM