인디노트

다음은 RSA 암호화가있는 jks 키 저장소를 사용하여 함께 해결할 수있는 솔루션입니다. 본문

인증기술

다음은 RSA 암호화가있는 jks 키 저장소를 사용하여 함께 해결할 수있는 솔루션입니다.

인디개발자 2018. 9. 6. 23:32
import javax.crypto.Cipher;
import javax.xml.bind.DatatypeConverter;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.cert.Certificate;

public class Main {

    public static void main(String[] args) {

        byte[] txt = "This is a secret message for your own eyes only".getBytes();
        byte[] encText;
        try{

            // Load the keystore
            KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
            char[] password = "keystorePassword".toCharArray();
            java.io.FileInputStream fis = new java.io.FileInputStream("/path/to/keystore/myKeyStore.jks");
            ks.load(fis, password);
            fis.close();

            Key rsakey = ks.getKey("mykeyalias", password);
            Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

            // Encrypt
            Certificate cert = ks.getCertificate("mykeyalias");
            try
            {
                cipher.init(Cipher.ENCRYPT_MODE, cert.getPublicKey());
                encText = cipher.doFinal(txt);
                System.out.println(encText.toString());
            }
            catch (Throwable e)
            {
                e.printStackTrace();
                return;
            }

            // Decrypt
            cipher.init(Cipher.DECRYPT_MODE, rsakey);
            String decrypted = new String(cipher.doFinal(encText));
            System.out.println(decrypted);


        } catch (Exception e) {
            System.out.println("error" + e);
        }
}


반응형

'인증기술' 카테고리의 다른 글

FIDO 스펙 개요  (0) 2020.11.02
FIDO2.0 구조적 특징 소개  (0) 2020.11.02
Simple Certificate Enrolment Protocol  (0) 2018.08.22
SCEP 기술  (0) 2018.08.21
CSR (PKCS 10) 생성하는 Java Code Sample  (0) 2018.08.21
Comments