2014-11-25 4 views
1

암호화 할 때 잘 작동하는 코드 조각이 있지만 URL에 전달되어야하므로 암호화 된 문자열에 사용 된 문자가 마음에 들지 않습니다. 좋아하는 캐릭터는 az, AZ 및 0-9입니다. 이것이 가능합니까?자바에서 암호 암호화를 사용하는 경우에만 문자열 문자로 암호화

String key = enc_key; 

// Create key and cipher 
Key aesKey = new SecretKeySpec(key.getBytes(), "AES"); 
Cipher cipher = Cipher.getInstance("AES"); 

// encrypt the text 
cipher.init(Cipher.ENCRYPT_MODE, aesKey); 
byte[] encrypted = cipher.doFinal(text.getBytes()); 
System.out.println(new String(encrypted)); 

는 암호화 된 문자열이 ò'Ê> ‡ 6? dövNÃ © ÷의 친절한 :-(를 URL이 아닙니다 , 어떤 제안이?

답변

5

먼저 사용하십시오 일반 AES처럼 보인다 인코딩을하고 base64로 인코딩 한 다음 다른 쪽에서 base64로 디코딩 한 후 해독해야합니다. 자바 8을 사용하는 경우에는 base64 codec을 사용하고 자바 7 이상이면 apache commons codec을 사용하십시오

+0

base64 인코딩 표준 인코딩입니다. 즉, 다른 사람이 URL을 통해 사용되므로 안전하지 않거나 잘못 되었나요? – Lappies

+1

암호화 된 바이트를 URL에서 안전하게 사용할 수있는 형식으로 인코딩하려면 암호화 후 Base64 인코딩을 사용해야합니다. 다른면에서이 문자열은 먼저 일반 텍스트로 전환하기 위해 base64로 디코딩 된 다음 해독됩니다. –

+0

굉장,이 잘 작동하는 것, 감사합니다 – Lappies