PHP에서 임의의 문자열을 생성하는 방법 [예제 포함]

게시 됨: 2020-11-24

PHP는 출시 당시 Personalized Home Page 의 약자였습니다 . 그리고 진화 과정을 통해 업계에 PHP: Hypertext PreProcessor 라는 대체적이고 더 수용 가능한(재귀적) 정의를 제공 했지만, PHP에 대한 진실은 여전히 ​​PHP가 무엇보다도 개인화 정신을 흡수한다는 것입니다.

오늘날 PHP는 Microsoft의 ASP(Active Server Pages)와 같은 다른 모든 주요 서버 구성 언어에 대한 가장 선호되는 무료 오픈 소스 대안입니다. 이 개인화 측면의 대부분은 모듈 , 데몬 또는 실행 파일 로 구현될 수 있는 서버측 PHP PHP 인터페이스는 UID(고유 식별자), 이메일 주소, 사용자 이름, 비밀번호, 기밀 연락처 정보 등과 같은 중요한 사용자 중심 데이터를 관리하는 데 유용합니다.

전부는 아니지만 세계 최고의 동적 콘텐츠 관리 시스템(CMS의 거인 WordPress 포함)은 PHP 기반 플랫폼으로, 사용자 기록과 콘텐츠 기록 모두를 PHP로 액세스할 수 있는 데이터베이스 형태로 쉽게 만들고 유지 관리할 수 있습니다. .

이 기사에서는 관리자가 관리자 측과 사용자 측 모두의 개입을 최소화하면서 새 "사용자"를 생성하는 작업에 필요한 모든 필수 필드를 쉽게 채울 수 있도록 하는 PHP의 한 가지 특정 측면을 탐구할 것입니다. . 이렇게 하려면 관리자가 PHP 임의 문자열을 생성하는 방법을 배워야 하며 이것이 바로 우리가 다룰 것입니다.

읽기: PHP 프로젝트 아이디어 및 주제

목차

PHP 랜덤 문자열이란 무엇입니까?

PHP 임의 문자열은 배열에서 파일 이름, 임의 URL 확장자, 암호 또는 인증 토큰(예: 일반 API 토큰 및 Facebook의 앱 개발 인터페이스에서 볼 수 있는 API 비밀).

빈번한 블로거, 특히 Medium과 같은 플랫폼을 사용하여 작업을 게시하는 사람들은 새로운 스토리나 게시물을 게시할 때마다 이 무작위 문자열 생성 행위를 보게 됩니다. 기본 도메인을 따르는 URL 확장은 일반적으로 다음의 결과입니다. 게시 인터페이스에서 생성되는 임의의 문자열입니다.

예를 들어, URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation-c37d87e3386b 에서 URL의 마지막 부분( c37d87e3386b )은 무작위로 생성된 문자열 . PHP 임의 문자열에 대한 다른 쉽고 중요한 참조에는 WordPress의 모든 새 사용자 계정에 대해 생성되는 "기본" 암호가 포함됩니다.

점점 더 많은 소비자 인터넷 플랫폼이 "매직 링크" 로그인을 활성화할 때 암호화의 힘을 활용하기 위해 PHP 임의 문자열을 사용하는 방향으로 전환하고 있습니다. "매직 링크" 로그인을 사용하는 클라우드 기반 서비스를 사용한 적이 있다면 PHP 임의 문자열의 생성 및 매핑과 함께 제공되는 용이성, 효율성 및 향상된 보안 계층에 이미 익숙할 것입니다.

PHP 임의 문자열을 생성하는 방법?

당면한 작업은 PHP를 사용하여 무작위, 영숫자 및 고유 문자열을 생성하는 코드를 작성하는 것입니다. 이를 달성할 수 있는 네 가지 방법이 있습니다.

  1. 무차별 대입 (무작위 인덱싱) 을 사용하여 – 이것은 PHP 임의 문자열을 얻는 가장 쉽지만 조잡한 방법입니다.
  2. " 해싱 " 기능을 사용하여(PHP 임의 문자열의 알고리즘 생성 - 이것은 무차별 대입을 사용하는 것과 비교하여 좀 더 지능적인 접근 방식입니다)
  3. 내장 uniqid() 함수 사용(이는 간단하고 내장 PHP 기능을 활용하여 요소에 대한 고유 식별자 생성)
  4. random_bytes() 다음에 bin2hex() 를 사용하여 암호로 안전한 임의 바이트를 생성하고 온라인 복권, 온라인 포커 게임 및 코어에 내장된 진정한 무작위로 실시간 숫자 생성이 필요한 기타 플랫폼과 같은 인터페이스에 놀라운 기능을 제공합니다.

더 읽어보기: PHP에서의 취업 기회

무차별 대입을 사용하여 PHP 임의 문자열 생성

PHP에서 무작위 문자열 생성의 무차별 대입 개념은 이해하기 쉽고 구현하기 가장 쉽습니다. 일반적으로 무차별 대입 접근 방식은 네 가지 쉬운 단계로 설명할 수 있습니다.

  1. 가능한 모든 문자를 묶고 하나의 문자열에 넣습니다(이는 문자열에서 허용되는 모든 문자의 샘플 공간 저장소입니다).
  2. 0(영)에서 시작하여 문자열 길이 "-1"까지 확장되는 "임의 인덱스"를 생성합니다.
  3. 현재 인덱스 위치에 문자를 인쇄합니다.
  4. X가 문자열에 필요한 문자 수(원하는 문자열 길이)이면 전체 명령 루프에서 1, 2, 3단계를 총 X번 반복합니다.

아래 샘플 코드 구현에서 볼 수 있듯이 이것은 PHP에서 임의의 문자열을 생성하는 가장 간단한 방법입니다.

샘플 코드:

<?php

$n=10;

함수 getName($n) {

$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

$randomString = ";

($i = 0; $i < $n; $i++) {

$index = rand(0, strlen($characters) – 1);

$randomString .= $characters[$index];

}

$randomString을 반환합니다.

}

에코 getName($n);

?>

필독: PHP 인터뷰 질문 및 답변

"해싱" 기능을 사용하여 PHP 임의 문자열 생성

PHP에는 md5 (), sha1 () 및 hash ()와 같은 " 해싱 함수" 로 알려진 몇 가지 내장 함수가 있습니다 . 이러한 함수는 "sha1", "sha256" 및 "md5"와 같은 특정 알고리즘에 의해 정의된 문자열을 "해시"하는 데 사용할 수 있습니다. 이 모든 함수에서 인수는 문자열이고 출력은 영숫자 해시 문자열입니다(아래 샘플 코드 참조).

샘플 코드:

<?php

$str=랜드();

$결과 = md5($str);

에코 $ 결과;

?>

내장된 "uniqid()" 함수를 사용하여 PHP 임의 문자열 생성

PHP는 현재 시간에서 파생된 "고유 ID(UID)"를 생성하는 데 사용할 수 있는 uniqid()와 같은 특수 내장 기능과 함께 탁월한 개인화 도구로서의 가치를 유지합니다. 마이크로초("마이크로 시간"이라고도 함).

기본 구문에서 uniqid() 함수는 항상 문자열 길이가 13자인 고유한 영숫자 문자열을 반환합니다. 아래 샘플 코드를 사용하여 uniqid() 메서드의 구현을 테스트할 수 있습니다.

샘플 코드:

<?php

$결과 = uniqid();

에코 $ 결과;

?>

random_bytes() 및 bin2hex()를 사용하여 PHP 임의 문자열 생성

이것은 지금까지 "의사 무작위" 바이트를 생성한 다음 이를 16진수 형식으로 변환하여 기존 무작위화에 암호화 계층을 추가하는 가장 발전 되고 안전한 방법입니다.

첫 번째 단계는 내장된 random_bytes () 함수를 호출하여 암호학적으로 안전한 임의 바이트를 생성하는 것입니다. 다음 단계는 이 이진 데이터(바이트 수)를 인수로 사용하고 완벽하게 사용 가능한 고유한 영숫자 문자열 인 해당 16진수 값을 출력으로 생성하는 bin2hex () 함수를 호출하는 것입니다. 이것은 아래 샘플 코드에 더 잘 설명되어 있습니다.

샘플 코드:

<?php

$n = 20;

$ 결과 = bin2hex(random_bytes($n));

에코 $ 결과;

?>

다음은?

upGrad 는 PHP로 프로그래밍하고 upGrad의 PG 디플로마에서 소프트웨어 개발 전문화 풀 스택 개발을 통해 더 많은 것을 제공 합니다. 풀 스택 개발자로 부상하고 멋진 애플리케이션을 빌드하는 방법을 배우는 프로그램입니다. 라이브 프로젝트 및 과제 작업과 15가지 프로그래밍 언어 및 도구 교육을 포함하는 광범위한 12개월 프로그램입니다. 이와 함께 모의 면접 및 취업 지원을 통한 상시 경력 지원이 있습니다.

당신의 꿈의 직업에 착륙

전체 스택의 업그레이드 및 IIIT-방갈로르 PG 디플로마
더 알아보기