블로그 이미지
래머
오늘도 열심히 개발하는 개발자입니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 5. 16. 01:00 Java

웹통신시 간단하게 암호화 처리를 위해서 자바에서 제공하는 랜덤 문자열 생성 함수가 있는지 잠시 찾아보니

없는것 같아(오래찾아보지 않아서 있는지 없는지 모르겠다) 고민하던 중 자바의 기본 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





'Java' 카테고리의 다른 글

자바 UUID 생성하기  (0) 2014.06.04
자바 랜덤문자열 생성  (0) 2014.06.03
posted by 래머