android bad base64,security - bad base64 in android - Stack Overflow

在尝试从Base64字符串解析X.509证书时,博主遇到了一个`android.util.BASE64DataException: bad base-64`异常。代码中,博主使用了`Base64InputStream`来解码证书,但在`CertificateFactory.generateCertificate(in)`这行代码处抛出了异常。问题可能出在Base64解码过程中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hi i am using the following code to parse a certificate details.Everything is fine except a bit problem mentioned below.

package android.net.http;

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.File;

import java.io.FileReader;

import java.io.InputStream;

import java.security.cert.Certif`enter code here`icate;

import java.security.cert.CertificateFactory;

import java.security.cert.CertificateParsingException;

import java.security.cert.X509Certificate;

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

import android.util.Base64;

import android.util.Base64InputStream;

import android.util.Log;

public class SslCertificate1Activity extends Activity

{

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

try {

String text = "-----BEGIN CERTIFICATE-----\n"+

"MIIC/TCCAmagAwIBAgIBKjANBgkqhkiG9w0BAQQFADCBqDEiMCAGA1UEAxMZeG1sZ2F0ZXdheS5p\n"+

"dHMudXRleGFzLmVkdTEoMCYGA1UECxMfSW5mb3JtYXRpb24gVGVjaG5vbG9neSBTZXJ2aWNlczEq\n"+

"MCgGA1UEChMhVGhlIFVuaXZlcnNpdHkgb2YgVGV4YXMgYXQgQXVzdGluMQ8wDQYDVQQHEwZBdXN0\n"+

"aW4xDjAMBgNVBAgTBVRleGFzMQswCQYDVQQGEwJVUzAeFw0wNDA1MDkwNTMwMTBaFw0wNTA1MDQw\n"+

"NTMwMTBaMIGAMQswCQYDVQQGEwJVUzEOMAwGA1UECBMFVGV4YXMxDzANBgNVBAcTBkF1c3RpbjEq\n"+

"MCgGA1UEChMhVGhlIFVuaXZlcnNpdHkgb2YgVGV4YXMgYXQgQXVzdGluMRMwEQYDVQQLEwpUb29s\n"+

"cyBUZWFtMQ8wDQYDVQQDEwZDbGllbnQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ6PABjb\n"+

"zXUkgo29S4uv1Qz9reo1/tP4pkQTGAldSbtA4hVtA/3sjw2+u3kgxYruAi2cXV2k0RPZhsUZjlDk\n"+

"jMPb/dlY81bD8gqe3lu3ezugJrlArlpfWN6PlufbTjxHSqIA0XD9R5/ZECaUV9dD43K5KdWUCy99\n"+

"YKDiSwVPO9F5AgMBAAGjXTBbMB0GA1UdDgQWBBRkCCpscEXxXu8Ba67p6zdh13ypjzAfBgNVHSME\n"+

"GDAWgBR2RsZH2kSY782kBROo92FAWS6sADAJBgNVHRMEAjAAMA4GA1UdDwQHAwUBEiRIkDANBgkq\n"+

"hkiG9w0BAQQFAAOBgQCtV1NzpdVBs5vyb8yLXNA3hA1LsmE/2QanXG4T3UN93BI4HQzx0idnkN1Y\n"+

"0RAQ1rjGeQ1pk3l2DWsPi9mTkCGmYs/EMLkKOBee9ad3BIG6sKwXgbgLyNLgda+Y1bo+SIomq/a7\n"+

"yP92UHMFEegfS/ssECA+Q3hHuU6in3AqLfWH1w==\n"+

"-----END CERTIFICATE-----";

int startIndex = 0;

String cert = text.substring(startIndex,text.length());

byte[] certBytes = cert.getBytes();

InputStream in = new Base64InputStream(new ByteArrayInputStream(

certBytes), 0);

CertificateFactory certFact = CertificateFactory.getInstance ("X.509");

Certificate certGen = certFact.generateCertificate(in);

X509Certificate x509 = (X509Certificate) certGen;

Log.i("","certificate details:"+x509);

}

catch (Exception e)

{

Log.e("testapp", "exception: " + e.getMessage());

}

}

}

and I am getting android.util.BASE64DataException:bad base-64 at the foloowing line when I launced debugger:-

Certificate certGen = certFact.generateCertificate(in);

Seems like there is something wrong with Base64InputStream.Please help in rectifying the Exception.

Thanks in advance

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值