가끔 개발을 하다보면 랜덤 문자열을 생성해야할 경우가 생긴다. 

나의 경우 세션키 또는 인증번호 생성 등을 많이 했다.

아마 임시 비밀번호 등의 경우들도 같은 방법으로 랜덤 문자열을 생성 하지 않나 싶다.

솔직히 나도 많이 찾아보고 한건 아니다. 그렇기 때문에 다른 방법도 있을 수 있다. 

난 아주 간단한 방법들을 찾아서 구현해봤다.

우선 랜덤값을 생성해야한다.

Math.random() 이란 함수를 사용한다.

0과 1사이의 소숫점을 반환한다. 생성된 난수는 Number 타입이기 때문에 String타입으로 바꿔줘야한다.

자바에서는 toString 함수는 그저 String 타입으로 변환해주는 것이었는데 Node.js에선 괄호 안에 파라미터를 통하여 해당 옵션을 넣을 수 있다.

그렇기 때문에 알파벳 + 숫자를 사용하려면 36을 넣으면 된다.

예시

Math.random().toString(36)

위에 예시대로 코드를 짜면 소숫점의 난수가 나온다. 0.qwi2312jeb4i...

slice 함수를 사용하여 앞에 0, . 을 뺀 나머지 난수만 가져오면 된다.

예시

Math.random().toString(36).slice(2);

이렇게 하면 랜덤문자열이 완성된다. 

이런 랜덤문자열을 이용하여 SMS 문자 인증이나 세션키로 사용할 수 있다.

+ Recent posts