. 다음의 클래스를 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=