java 17 Random

Crow·2022년 8월 3일
0

삽질

목록 보기
6/16

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/

https://www.baeldung.com/java-17-random-number-generators

profile
어제보다 개발 더 잘하기 / 많이 듣고 핵심만 정리해서 말하기 / 도망가지 말기 / 깃허브 위키 내용 가져오기

0개의 댓글