웹통신시 간단하게 암호화 처리를 위해서 자바에서 제공하는 랜덤 문자열 생성 함수가 있는지 잠시 찾아보니
없는것 같아(오래찾아보지 않아서 있는지 없는지 모르겠다) 고민하던 중 자바의 기본 Math.random() 함수를 약간 응용하여 간단하게 랜덤문자열을
생성 할 수 있는 클래스를 만들어보았다.
기본 힌트는 
1. 랜덤함수로 임의의 숫자를 생성하고
2. 해당 숫자를 문자열로 바꾼다음에
3. 해당 문자를 다시 base64로 인코딩 하는것이다.
아래는 유틸클래스이 전체 내용이다.
base64인코딩/디코딩 관련한 클래스는 구글 안드로이드 IAP예제에서 제공되는 Base64클래스를 가져다 사용했다. 해당 클래스 파일을 첨부해놓는다.
package com.util.crypt; 
import java.io.UnsupportedEncodingException; 
import com.util.base64.Base64; 
public class CRandomUtil { 
     
    //랜덤 양의 정수값 생성 
    public static int GetInt(int max) 
    { 
        return (int)(Math.random() * max); 
    } 
     
    //랜덤 0 ~ 1사이의 양의 실수값 생성 
    public static float GetFloat() 
    { 
        return (float)Math.random(); 
    } 
     
    //랜덤 -1 ~ 1사이의 실수값 생성 
    public static float GetUnit() 
    { 
        return ((float)Math.random() * 2.0f) - 1.0f; 
    } 
     
    //랜덤 스트링 생성 
    public static String GetString() throws UnsupportedEncodingException 
    { 
             //여기에서 생성하는 정수의 값이 클수록 긴 랜덤 문자열이 만들어진다
        int val = GetInt(500000); 
         
        String sv = String.valueOf(val); 
         
        return Base64.encode(sv.getBytes("utf-8")); 
    } 
     
    //랜덤 스트링 생성(웹전송용) 
    public static String GetStringWebSafe() throws UnsupportedEncodingException
    { 
        int val = GetInt(500000); 
         
        String sv = String.valueOf(val); 
         
        return Base64.encodeWebSafe(sv.getBytes("utf-8"), true); 
    } 
}
첨부 파일의 패키지명등을 적절하게 변경하지 않으면 오류가 날것이다.
 base64.zip
base64.zip