Criptografia: Ler arquivo com a extensão .jks

4 respostas
E

Bom dia Pessoal,

Alguem saberia informar como eu faço para ler arquivo (chave publica com extensao .jks), pois pesquisei e nao encontrei nada que pudesse ajudar.

Se alguem ja fez esse processo e puder ajudar, eu agradeço muiito .

Obrigado desde já

EltoN C.

4 Respostas

T

Um arquivo jks é um Java KeyStore, então você usa o método load da classe KeyStore.

E

obrigado pela dica, vou tentar, e postar a solução, caso eu consiga…

Obrigado…

E

galera, segue a solução para ler um arquivo com a extensao .jks

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;  
import java.io.FileNotFoundException;
import java.io.FileReader;
 import java.io.IOException;  
 import java.security.KeyStore;  
 import java.security.KeyStoreException;  
 import java.security.NoSuchAlgorithmException;  
 import java.security.SecureRandom;  
 import java.security.cert.CertificateException;  
 import java.security.cert.X509Certificate;  
 import java.security.interfaces.RSAPublicKey;  
   
import java.util.Enumeration;
 import javax.crypto.Cipher;  
import javax.swing.JOptionPane;
   
/**
 *
 * @author Elton Cunha
 */
public class LerArquivoJKS {

  
    public static void main(String[] args) throws KeyStoreException, FileNotFoundException, IOException, NoSuchAlgorithmException, CertificateException{
        
        StringBuffer teste = new StringBuffer();
        
        
        System.out.println("Testo desencriptado: ---   "+LerArquivoJKS.readJKS(KEYPASS, KEYSTORE));
    }
    
 
   
    private static final String KEYSTORE = "C:\\Documents and Settings\\Elton Cunha\\Desktop\\nfe.jks";  
    private static final String KEYPASS = "cienciCert";  
   
   
    private static X509Certificate readJKS(String keyname, String keystore) throws IOException, KeyStoreException,  
       NoSuchAlgorithmException, CertificateException {  
   
       KeyStore ks = KeyStore.getInstance("JKS");  
       ks.load(new FileInputStream(keystore), KEYPASS.toCharArray());  
       
       X509Certificate result = (X509Certificate) ks.getCertificate(getAliases()); 
     
       
       return result;
    }  
    
  
    private static String getAliases() throws KeyStoreException, FileNotFoundException, IOException, NoSuchAlgorithmException, CertificateException{
        
        String result = "";
        String path = "C:\\Documents and Settings\\Elton Cunha\\Desktop\\nfe.jks";
        KeyStore ks = KeyStore.getInstance("JKS");
            //FileInputStream fis = new FileInputStream(NfeUtil.generatePathToSecurity(path));
            FileInputStream fis = new FileInputStream(path);
            ks.load(fis, "cienciCert".toCharArray());
            
            
            
            
            Enumeration aliasesEnum = ks.aliases();
            String alias = "";
            while (aliasesEnum.hasMoreElements()) {
                alias = (String) aliasesEnum.nextElement();
                if (ks.isKeyEntry(alias)) {
                    
                    break;
                }
            }
            
            return alias;
    }
    

    
}
M
elton_csantana:
galera, segue a solução para ler um arquivo com a extensao .jks
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;  
import java.io.FileNotFoundException;
import java.io.FileReader;
 import java.io.IOException;  
 import java.security.KeyStore;  
 import java.security.KeyStoreException;  
 import java.security.NoSuchAlgorithmException;  
 import java.security.SecureRandom;  
 import java.security.cert.CertificateException;  
 import java.security.cert.X509Certificate;  
 import java.security.interfaces.RSAPublicKey;  
   
import java.util.Enumeration;
 import javax.crypto.Cipher;  
import javax.swing.JOptionPane;
   
/**
 *
 * @author Elton Cunha
 */
public class LerArquivoJKS {

  
    public static void main(String[] args) throws KeyStoreException, FileNotFoundException, IOException, NoSuchAlgorithmException, CertificateException{
        
        StringBuffer teste = new StringBuffer();
        
        
        System.out.println("Testo desencriptado: ---   "+LerArquivoJKS.readJKS(KEYPASS, KEYSTORE));
    }
    
 
   
    private static final String KEYSTORE = "C:\\Documents and Settings\\Elton Cunha\\Desktop\\nfe.jks";  
    private static final String KEYPASS = "cienciCert";  
   
   
    private static X509Certificate readJKS(String keyname, String keystore) throws IOException, KeyStoreException,  
       NoSuchAlgorithmException, CertificateException {  
   
       KeyStore ks = KeyStore.getInstance("JKS");  
       ks.load(new FileInputStream(keystore), KEYPASS.toCharArray());  
       
       X509Certificate result = (X509Certificate) ks.getCertificate(getAliases()); 
     
       
       return result;
    }  
    
  
    private static String getAliases() throws KeyStoreException, FileNotFoundException, IOException, NoSuchAlgorithmException, CertificateException{
        
        String result = "";
        String path = "C:\\Documents and Settings\\Elton Cunha\\Desktop\\nfe.jks";
        KeyStore ks = KeyStore.getInstance("JKS");
            //FileInputStream fis = new FileInputStream(NfeUtil.generatePathToSecurity(path));
            FileInputStream fis = new FileInputStream(path);
            ks.load(fis, "cienciCert".toCharArray());
            
            
            
            
            Enumeration aliasesEnum = ks.aliases();
            String alias = "";
            while (aliasesEnum.hasMoreElements()) {
                alias = (String) aliasesEnum.nextElement();
                if (ks.isKeyEntry(alias)) {
                    
                    break;
                }
            }
            
            return alias;
    }
    

    
}

Bom dia senhores.

Sou novo em Java e preciso importar 4 arquivos jks.

A dica acima ajudou, mas alguém poderia me explicar como
utilizar no programa, em qual local?

Obrigado.

marcus
Criado 16 de janeiro de 2009
Ultima resposta 28 de dez. de 2010
Respostas 4
Participantes 3