相关疑难解决方法(0)

Java - 如何解码Base64编码的证书

以下是我的要求:

  1. 程序将有一个xml文件作为输入,带有3个标签:和.所有这些数据都是Base64编码的.注意:程序正在使用BC jar
  2. 程序需要解码它们并使用签名和证书验证数据的真实性
  3. 验证数据应该是Base64解码并写入另一个文件

下面是我试图解码证书的代码:

public void executeTask(InputStream arg0, OutputStream arg1) throws SomeException{
try{
    BufferedReader br = null;
    br = new BufferedReader(new InputStreamReader(arg0));
    String orgContent  = "", splitData = "", signContent = "", certContent = "";

    DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    Document doc = docBuilder.parse(arg0);
    doc.getDocumentElement().normalize();

    NodeList originalContent = doc.getElementsByTagName("OrgContent");
    Element originalElement = (Element)originalContent.item(0);
    NodeList textOrgContent = originalElement.getChildNodes();
    orgContent = ((Node)textOrgContent.item(0)).getNodeValue().trim();

    NodeList signature = doc.getElementsByTagName("Signature");
    Element signatureElement = (Element)signature.item(0);
    NodeList signatureContent = signatureElement.getChildNodes();
    signContent = ((Node)signatureContent.item(0)).getNodeValue().trim(); …
Run Code Online (Sandbox Code Playgroud)

java base64 certificate decoding x509

6
推荐指数
1
解决办法
1万
查看次数

在尝试通过KeyPairGenerator加载RSA私钥时,JSch获得"无效私钥:"

我正在使用java.security.KeyPairGenerator来生成RSA密钥对,然后尝试通过Jsch(0.1.49)中提供的KeyPair类加载私钥.代码:

public static void main(String[] args) {
    String header = "-----BEGIN RSA PRIVATE KEY-----";
    String footer = "-----END RSA PRIVATE KEY-----";
    KeyPairGenerator keyPairGenerator;
    try {
        keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(2048, new SecureRandom());
        PrivateKey privateKey = keyPairGenerator.genKeyPair().getPrivate();
        String key = new String(Base64.encodeBase64(privateKey.getEncoded()));
        StringBuffer pem = new StringBuffer(header+"\n");
        int len=key.length();
        for( int idx=0 ; idx < len ; idx+= 64 )
            pem.append(key.substring(idx, (idx+64)<len?(idx+64):len)+"\n");
        pem.append(footer);
        String privateKeyStr = pem.toString();
        System.out.println(privateKeyStr);
        com.jcraft.jsch.KeyPair.load(null, privateKeyStr.getBytes(), null);
    } catch (JSchException e) {
        // TODO Auto-generated catch block
        e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

java ssh rsa jsch

5
推荐指数
1
解决办法
1万
查看次数

JSch:从存储在 hdfs 上的私钥添加身份

我需要从 hadoop 集群连接到 sftp 服务器。我想知道是否有办法从 hdfs 中存储的私钥加载身份。实际上,JSch 对象似乎只接受本地路径:

try {
    String privateKeyPath = "hdfs://namenode:8020/path/to/privatekey";  // need this one to be an hdfs path
    JSch jsch = new JSch();

    jsch.addIdentity(privateKeyPath);

    // [..]
}
catch (Exception ex) {
    // [..]
}
Run Code Online (Sandbox Code Playgroud)

任何想法?

java sftp hadoop jsch hdfs

2
推荐指数
1
解决办法
7584
查看次数

标签 统计

java ×3

jsch ×2

base64 ×1

certificate ×1

decoding ×1

hadoop ×1

hdfs ×1

rsa ×1

sftp ×1

ssh ×1

x509 ×1