내 비밀 키를 저장하려면 아래에 스냅 코드가 있습니다.비밀 키의 핵심 자료가 16 진수로 인코딩해야합니까? (Java)
저장하기 전에 왜 16 진수 형식으로 키를 인코딩해야합니까?
아래의 두 가지 스냅 코드의 차이점은 무엇입니까?
스냅 코드 1
public static void saveKey(SecretKey key, File file) throws IOException {
byte[] encoded = key.getEncoded();
char[] hex = Hex.encodeHex(encoded);
String data = String.valueOf(hex);
FileUtils.writeStringToFile(file, data);
}
스냅 코드 2
public static void saveKey(SecretKey key, File file) throws IOException {
byte[] encoded = key.getEncoded();
FileUtils.writeStringToFile(file, new String(encoded));
}
모든 '바이트'가 합리적인 문자열을 만드는 것은 아닙니다. –
String은 2 진 데이터의 컨테이너가 아닙니다. 나 후에 반복해라. 문자열은 바이너리 데이터의 컨테이너가 아닙니다. – EJP