TODO http://blog.kangwoo.kr/47 http://www.java2s.com/Tutorial/Java/0490__Security/BasicRSAexample.htm
(1024 / 8) - 11
의 결과인 117 바이트만 암호화 복호화 가능하다.RSA 키(public/private)을 hex 문자열로 만들어 저장했다가, hex 문자열에서 다시 키 객체를 생성할 수 있다.
아래는 PublicKey
예이며, PrivateKey
는 RSAPrivateKeySpec
를 사용하면 된다.
KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA"); generator.initialize(1024); KeyPair keyPair = generator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); RSAPublicKeySpec publicSpec = keyFactory.getKeySpec(publicKey, RSAPublicKeySpec.class); String publicKeyModulus = publicSpec.getModulus().toString(16); String publicKeyExponent = publicSpec.getPublicExponent().toString(16);
BigInteger modulus = new BigInteger(publicKeyModuls, 16); BigInteger exponent = new BigInteger(publicKeyExponent, 16); RSAPublicKeySpec pubks = new RSAPublicKeySpec(modulus, exponent); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey publicKey = keyFactory.generatePublic(pubks);