Ruby 난수 생성하기

SecureRandom을 이용하여 난수를 생성한다.

Posted by BELLSTONE on October 22, 2019 · 2 mins read

1. SecureRandom

  • Ruby 2.6.5 SecureRandom을 참고하여 작성했습니다.

  • 사실, Docs를 보면 다 적혀있는데, 자세한 옵션에 대해서 잘 몰라 정리해보려고 합니다.

2. SecureRandom 사용법

1
require 'securerandom'
  • SecureRandom을 사용하기 위해서, Module 또는 Class의 상단에 입력합니다.

  • 기본적인 사용법은 아래와 같습니다.

1
2
SecureRandom.XXX
SecureRandom.XXX(number)
  • UUID를 제외한 다른 것들은 number를 이용하여, 해당 숫자만큼 난수를 생성할 수 있습니다.

1) hex(Hexadecimal)

  • hex16진법을 의미합니다.

  • 따라서, 생성되는 문자열은 숫자(0~9)와 문자(a~f)를 사용합니다.

1
2
SecureRandom.hex #0913ed88ac8462d7adc7c46b293a4433
SecureRandom.hex(10) #b8e8005860118e3715be

2) base64

  • base6464진법을 의미합니다.

  • 따라서, 생성되는 문자열은 숫자(0~9)와 문자(a~z, A~Z)와 일부 기호(+, /, =)를 사용합니다.

1
2
SecureRandom.base64 #9hlYMuDPuqPrpVuiHQwjoA==
SecureRandom.base64(10) #gWehRiCLKtFdHg==

3) random_bytes

  • random_bytes2진 문자열을 의미합니다.

  • 따라서, 생성되는 문자열은 x00 ~ xff를 사용합니다.

1
2
SecureRandom.random_bytes #\xD27O\xA5v~\xBFuA\x02Oe/\xCE\x1F\xDB
SecureRandom.random_bytes(10) #\xE3\xF3BE\eL\xD1r\xD9\xC7

4) alphanumeric

  • alphanumeric영어와 숫자를 사용하여 문자열을 생성합니다.
1
2
SecureRandom.alphanumeric #OrS0kPq5CA2zPl4A
SecureRandom.alphanumeric(10) #eQd5Vk0VEo

5) uuid(Universally unique identifier)

  • uuid를 사용하여 문자열을 생성합니다.

    • uuid는 총 36개의 문자(8-4-4-4-12)로 구성되기 때문에 숫자를 지정할 수 없습니다.
1
SecureRandom.uuid #0ef3f739-56ab-4a81-8574-4f678c480b82
  • 그럼 끝!

참고