개발관련/암호화 2009. 12. 31. 15:29
openjce에서 제공하는 함수를 사용하여 구현

. 다음의 클래스를 import를 하고

import java.security.SecureRandom;
import org.bouncycastle.util.encoders.Base64;
import org.bouncycastle.util.encoders.Hex;

 

  

2. 랜덤한 20bytes를 생성하고

   byte[] randomBytes = new byte[20];
   SecureRandom random = new SecureRandom();
   random.nextBytes(randomBytes);

3. 랜덤한 바이러리를 System출력으로 볼 수 없기 때문에 바이러리를 hexa값으로 출력해보면 40bytes로 출력된다.

   String hexaed = new String(Hex.encode(randomBytes));
   System.out.println(hexaed+" hexaed length="+hexaed.length());
   (출력의예=>  2f8b2d2b99a687feec19ea20235f560d233aaaea hexaed length=40)

 

4. 랜덤한 바이러리를 Base64로 인코딩하여 출력해보면 28bytes로 출력된다.

   String base64ed = new String( Base64.encode(randomBytes));
   System.out.println(base64ed+" base64 length="+base64ed.length());

  (출력의 예=> L4stK5mmh/7sGeogI19WDSM6quo= base64 length=28)

 

 

5. hexa나 base64로 표시된 데이터를 반대의 원본으로 바꾸려면 디코딩을 하면 된다.

   byte[] base64decoded = Base64.decode(base64ed.getBytes());
   byte [] hexadecoded = Hex.decode( hexaed.getBytes());

 

 

openjce에서 제공하는 함수를 이용하여 간단하게 바이러리 데이터의 hexa 및 base64 스트링 구현을 알아보았다.

스크랩 :http://blog.paran.com/blog/detail/postBoard.kth?blogDataId=27788506&pmcId=javacipher&totalCount=13&preViewPage=0&ajaxPage=1&preFBlogId=35385570&preLBlogId=27788506&pageStyle=null&myCateId=0&yearMonth=null&rDay=null&style=Board&p_eye=
posted by 제스트
: