내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
java:crypt:rsa
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Java RSA ====== * [[http://arstechnica.com/security/2010/01/768-bit-rsa-cracked-1024-bit-safe-for-now/|2010년 현재 RSA는 1024이상이 완전하다]] ===== 기본 암호화 복호화 예제 ===== * [[http://kwon37xi.egloos.com/4427199|RSA 기반 웹페이지 암호화 로그인]] TODO http://blog.kangwoo.kr/47 http://www.java2s.com/Tutorial/Java/0490__Security/BasicRSAexample.htm ===== 암호화 복호화 데이터 길이 제한 ===== * [[http://stackoverflow.com/questions/10007147/getting-a-illegalblocksizeexception-data-must-not-be-longer-than-256-bytes-when|java - getting a IllegalBlockSizeException: Data must not be longer than 256 bytes when using rsa]] * RSA는 기본적으로 **(Key bit수 / 8) - 11** 바이트만을 암호화 복호화 할 수 있다. * 즉, 키가 1024bit라면 ''(1024 / 8) - 11''의 결과인 117 바이트만 암호화 복호화 가능하다. ===== RSA 키를 저장했다가 복구하기 ===== RSA 키(public/private)을 hex 문자열로 만들어 저장했다가, hex 문자열에서 다시 키 객체를 생성할 수 있다. 아래는 ''PublicKey'' 예이며, ''PrivateKey''는 ''RSAPrivateKeySpec''를 사용하면 된다. ==== Key를 hex 문자열로 ==== <code java> 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); </code> ==== hex 문자열에서 Key로 ==== <code java> 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); </code>
java/crypt/rsa.txt
· 마지막으로 수정됨: 2013/01/23 17:23 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로