할당을 위해 AES를 구현 중이고 키가 항상 길이가 정확히 16, 24 또는 32 인 바이트 배열인지 확인하는 논리를 캡슐화하려고합니다.바이트 배열을 확장 할 수 있습니까?
저장할 수있는 래퍼 클래스를 만들 수 있습니다 byte [] 내부적으로 바이트하지만 Array 나 비슷한 것을 확장 할 수 있다면 Iterators, toString 및 자바 배열을 사용하여 얻을 수있는 다른 편리한 메서드를 다시 구현할 필요가 없는지 궁금합니다.
e.e. 다음과 같은 것이 가능한가?
public class Key extends Array<Byte>{
// Valid length of key in bytes
public static int[] possibleLengths = new int[]{ 16, 24, 32 };
// Check if a given byte[] is a valid candidate for a key
public static boolean isValidLength(byte[] input) {
for (int length: possibleLengths) {
if (input.length == length) return true;
}
return false;
}
// Primary constructor passes bytes directly to internal state
public Key(byte[] input) throws InvalidKeyLengthException {
if (!isValidLength(input))
throw new InvalidKeyLengthException;
setKey(input);
}
}
'Key' 클래스의 필드가 바이트 배열에 더 적합 할 것 같습니다. – chrylis
@chrylis 그것이 내가 처음 구현 한 방법이었고, 내가 바퀴를 다시 발명하는지 확인하고 싶었습니다. 의견을 보내 주셔서 감사합니다. –