jwt 토큰의 publickey 공개정책을 고민중에 퍼블릭키 역시 랜덤한 키를 입력해서 한번사용한 후 버리면 어떨까 싶어서 Random을 사용중에 알게 된 내용을 정리함
java 17 버전의 랜덤은 기존에
Random r.nextInt()
이런형식이 아니고
RandomGenerator gen = RandomGenerator.of("L128X256MixRandom");
이런식으로 RandomGenerator를 이용해서 알고리즘을 부여해줘야 사용이 가능하고
또한 요즘 자바에서 원하는 디자인 패턴인 팩토리 방식을 사용해야 하는거 같다
팩토리 방식은 구글링을 통해서 알아보면 좋다.
RandomGenerator gen = RandomGenerator.of("L128X256MixRandom");
byte[] b = new byte[256];
public byte[] nextBytes(byte[] bytes) {
for (int i = 0; i < bytes.length; )
for (int rnd = gen.nextInt(), n = Math.min(bytes.length - i, 4);
n-- > 0; rnd >>= 8)
bytes[i++] = (byte) rnd;
return bytes;
}
해당 코드에서 내가 사용한 알고리즘은 128X256MixRandom 인대
그냥 목록에서 적당한걸 골라 잡아서 사용했다.
원래 사용하려던건 SecureRandom인대
나중에 적용시킬 방법을 찾아봐야겠음
참고 사이트
https://www.techiedelight.com/ko/difference-java-util-random-java-security-securerandom/