반응형
비밀키를 생성했으면 DB나 파일 등에 저장해야 합니다.
다음은 key를 String으로 변환하여 저장하는 방법과 반대로, String으로 key로 변환하는 방법입니다.
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class Test {
public static void main(String[] args) throws NoSuchAlgorithmException {
// create new key
SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey();
// get base64 encoded version of the key
String encodedKey = Base64.getEncoder().encodeToString(secretKey.getEncoded());
System.out.println(encodedKey);
// decode the base64 encoded string
byte[] decodedKey = Base64.getDecoder().decode(encodedKey);
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "AES");
}
}
여기서 주의 사항이 있습니다. 바로 java.util.Base64는 java 1.8에 추가되었다는 것인데요
이럴 때는 Apache Commons Codec을 사용하면 됩니다.
참고사이트
https://stackoverflow.com/questions/5355466/converting-secret-key-into-a-string-and-vice-versa
728x90
반응형
'웹 개발' 카테고리의 다른 글
Springboot에서 HTTP encoding charset 설정하는 방법 (0) | 2021.12.10 |
---|---|
Java에서 HashMap 복사하는 방법 (0) | 2021.12.10 |
javascript 뒤로가기 (0) | 2021.11.19 |
HTML class 속성에서 hyphen/dash(-)를 사용하는 이유 (0) | 2021.11.19 |
Can't execute jar- file: "no main manifest attribute" (0) | 2021.11.07 |