메뉴 건너뛰기

프로그램언어

2018.10.27 03:30

PHP 랜덤 문자열 생성

조회 수 4137 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
코딩시 가끔 무작위문자열이 필요할때가 있는데 시스템이나 내장함수에서 제공하는 방식은 원하는 기준으로 맞추기가 번거롭다.
단순 비교만 사용되는 토큰이나 인증코드 등은 기본난수를 해시화해서 다루면 되지만 암호찾기 등으로 변경된 암호를 사용자에게 알릴 필요가 있을때에는 상황에 따라 정돈된 무작위문자열이 필요한 경우가 있다.

랜덤문자를 원하는 조합으로 원하는 길이만큼 생성할 수 있도록 만들어 보았다.


function get_random_string($type = '', $len = 10) {

    $lowercase = 'abcdefghijklmnopqrstuvwxyz';

    $uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    $numeric = '0123456789';

    $special = '`~!@#$%^&*()-_=+\\|[{]};:\'",<.>/?';

    $key = '';

    $token = '';

    if ($type == '') {

        $key = $lowercase.$uppercase.$numeric;

    } else {

        if (strpos($type,'09') > -1) $key .= $numeric;

        if (strpos($type,'az') > -1) $key .= $lowercase;

        if (strpos($type,'AZ') > -1) $key .= $uppercase;

        if (strpos($type,'$') > -1) $key .= $special;

    }

    for ($i = 0; $i < $len; $i++) {

        $token .= $key[mt_rand(0, strlen($key) - 1)];

    }

    return $token;

}




//사용예


echo '기본 : ' . get_random_string() . '<br />';

echo '숫자만 : ' . get_random_string('09') . '<br />';

echo '숫자만 30글자 : ' . get_random_string('09', 30) . '<br />';

echo '소문자만 : ' . get_random_string('az') . '<br />';

echo '대문자만 : ' . get_random_string('AZ') . '<br />';

echo '소문자+대문자 : ' . get_random_string('azAZ') . '<br />';

echo '소문자+숫자 : ' . get_random_string('az09') . '<br />';

echo '대문자+숫자 : ' . get_random_string('AZ09') . '<br />';

echo '소문자+대문자+숫자 : ' . get_random_string('azAZ09') . '<br />';

echo '특수문자만 : ' . get_random_string('$') . '<br />';

echo '숫자+특수문자 : ' . get_random_string('09$') . '<br />';

echo '소문자+특수문자 : ' . get_random_string('az$') . '<br />';

echo '대문자+특수문자 : ' . get_random_string('AZ$') . '<br />';

echo '소문자+대문자+특수문자 : ' . get_random_string('azAZ$') . '<br />';

echo '소문자+대문자+숫자+특수문자 : ' . get_random_string('azAZ09$') . '<br />';


List of Articles
번호 제목 날짜 조회 수
120 PHP 속도 테스트 20 가지 2017.03.06 18329
119 PHP 소켓을 이용하여 URL의 응답결과를 문자열로 받기 2018.10.27 3525
118 PHP 소스코드 인코딩(암호화)하기 2018.07.19 6675
117 PHP 소스 : 이미지 리사이즈, 섬네일 2014.03.26 20716
116 PHP 세션에서 시작, 변수등록, 변수삭제, 부수기 2014.03.26 19513
115 php 세션 유지시간 늘리기 2017.03.07 26376
114 PHP 삼항연산자 ? file 2015.04.14 22966
113 PHP 브라우저 알아내기 2023.01.12 293
112 PHP 변수전달 GET, POST 2015.04.14 26612
111 PHP 버전이 낮아 imagerotate() 함수가 없을때 대신 사용하는 함수 2019.12.31 661
110 PHP 버전 숨기기 ( php version hide ) 2024.02.07 96
109 PHP 문자열에서 검색어를 기준으로 앞뒤로 일정 길이만큼 자르기 2018.10.27 3557
108 php 문자열관련 함수 2017.03.06 15620
107 PHP 만년달력 소스 2017.03.06 17093
106 PHP 로그인후 현재 페이지로 돌아오기 처리 2014.04.12 22686
105 PHP 랜덤확률 구하기 2018.10.27 4792
» PHP 랜덤 문자열 생성 2018.10.27 4137
103 PHP 디렉토리안에 파일 리스트 가져오기 2023.01.12 249
102 php 두날짜 사이의 모든날짜 배열 만들기 2023.01.12 196
101 PHP 도메인 이름이나 웹문서 주소 알아내기 2017.03.06 17612
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved