[PHP]利用openssl_random_pseudo_bytes跟base64_encode函数来生成随机字符串
[PHP]利用openssl_random_pseudo_bytes和base64_encode函数来生成随机字符串
openssl_random_pseudo_bytes函数本身是用来生成指定个数的随机字节,因此在使用它来生成随机字符串时,还需要配合使用函数base64_encode。如下所示:
<code class="language-php hljs "><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getRandomString</span><span class="hljs-params">(<span class="hljs-variable">$length</span> = <span class="hljs-number">42</span>)</span> {</span> <span class="hljs-comment">/* * Use OpenSSL (if available) */</span> <span class="hljs-keyword">if</span> (function_exists(<span class="hljs-string">'openssl_random_pseudo_bytes'</span>)) { <span class="hljs-variable">$bytes</span> = openssl_random_pseudo_bytes(<span class="hljs-variable">$length</span> * <span class="hljs-number">2</span>); <span class="hljs-keyword">if</span> (<span class="hljs-variable">$bytes</span> === <span class="hljs-keyword">false</span>) <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">'Unable to generate a random string'</span>); <span class="hljs-keyword">return</span> substr(str_replace([<span class="hljs-string">'/'</span>, <span class="hljs-string">'+'</span>, <span class="hljs-string">'='</span>], <span class="hljs-string">''</span>, base64_encode(<span class="hljs-variable">$bytes</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>); } <span class="hljs-variable">$pool</span> = <span class="hljs-string">'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'</span>; <span class="hljs-keyword">return</span> substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>); }</code>
在调用base64_encode函数之后,还对结果进行了一次替换操作,目的是要去除随机生成的字符串中不需要的字符。
当然,在使用openssl_random_pseudo_bytes函数之前,最好使用function_exists来确保该函数在运行时是可用的。如果不可用,则使用Plan B:
<code class="language-php hljs ">substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>);</code>
这个函数的通用性很强,可以根据业务的需要进行适当修改然后当作静态方法进行调用。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Nginx는 웹 서버, 로드 밸런서, 역방향 프록시 및 캐시에 널리 사용되는 소프트웨어입니다. 네트워크 전송 중 데이터 암호화 및 보안에 대한 관심이 높아지고 있습니다. 통신 보안을 향상시키기 위해 OpenSSL 라이브러리를 사용하여 SSL/TLS 프로토콜을 구현하여 민감한 데이터의 전송을 보호할 수 있습니다. 이 기사에서는 Nginx와 OpenSSL 라이브러리를 사용하여 보다 안전한 통신을 달성하는 방법을 설명합니다. OpenSSL 라이브러리 설치 및 구성 먼저 서버에 OpenSSL 라이브러리를 설치해야 합니다. 만들 수 있다

수동 활성화를 원하는 사용자를 위한 것입니다. 이 작업을 수행하는 데 필요한 도구에 대한 도움이 필요하면 여기를 확인하세요. 수동 활성화 프로세스는 두 부분으로 나눌 수 있습니다. 1- 준비된 배치 파일에서 인터넷이 활성화되어 있는지 확인하십시오. 관리자 권한으로 Windows Powershell을 열고 다음을 입력하여 제공된 순서대로 명령을 나열하십시오. 키를 입력하세요(위 목록의 키로 교체). 다음 명령을 사용하세요. <key>slmgr/ipk<key> 여기에서 범용 티켓을 다운로드하고 다운로드한 파일을 추출하세요. 이제 Powershell(Get-ItemProper)에 다음 코드를 입력합니다.

OpenSSL을 사용하여 MySQL SSL 인증서를 생성하는 방법 소개: MySQL은 널리 사용되는 관계형 데이터베이스 시스템으로 실제 프로덕션 환경에서 암호화된 통신을 위해 SSL(SecureSocketsLayer) 프로토콜을 사용하는 것이 매우 중요합니다. 이 기사에서는 OpenSSL 도구를 사용하여 MySQL SSL 인증서를 생성하는 방법을 소개하고 해당 코드 예제를 제공합니다. 단계: OpenSSL 설치: 먼저 컴퓨터에 OpenSSL이 설치되어 있는지 확인하세요.

오픈소스 운영체제인 LINUX는 다양한 애플리케이션과 사용자 그룹을 보유하고 있습니다. CentOS7은 RHEL(Red Hat Enterprise Linux) 소스 코드를 기반으로 구축되었으며 높은 수준의 안정성과 보안성을 갖추고 있습니다. OpenBLAS 및 OpenSSL은 많은 개발자와 시스템 관리자의 일반적인 요구 사항입니다. 이 문서에서는 CentOS7에서 OpenBLAS 및 OpenSSL을 설치하고 구성하는 방법을 자세히 설명합니다. OpenBLAS는 BLAS(BasicLinearAlgebraSubprograms) 인터페이스를 기반으로 하는 오픈 소스 고성능 수학 라이브러리입니다.

문자열의 길이를 얻으려면 Java의 String.length() 함수를 사용하십시오. Java 프로그래밍에서 문자열은 문자열의 길이, 즉 문자열의 문자 수를 가져와야 하는 경우가 많습니다. Java에서는 String 클래스의 length() 함수를 사용하여 문자열의 길이를 얻을 수 있습니다. 다음은 간단한 예제 코드입니다: publicclassStringLengthExample{publ

pythonrandom 라이브러리 데모의 간단한 사용 난수를 생성하거나 시퀀스에서 요소를 무작위로 선택해야 할 때 Python에 내장된 무작위 라이브러리를 사용할 수 있습니다. 다음은 무작위 라이브러리를 사용하는 방법을 보여주는 주석이 달린 예입니다. #Import random library importrandom #0과 1 사이의 무작위 십진수 생성 random_float=random.random()print(random_float)#지정된 범위 내에서 난수 십진수 생성 Random 정수(끝점 포함) random_int=random.randint(1,10)print(random_int)#

Java는 Random 클래스의 nextDouble() 함수를 사용하여 임의의 배정밀도 부동 소수점 숫자를 생성합니다. Java의 Random 클래스는 다양한 유형의 난수를 생성하는 데 사용할 수 있는 의사 난수 생성기입니다. 그 중 nextDouble() 함수는 임의의 배정밀도 부동 소수점 수를 생성하는 데 사용됩니다. Random 클래스를 사용하기 전에 먼저 java.util 패키지를 가져와야 합니다. 다음으로 Random 객체를 생성하고 nextDouble() 함수를 사용할 수 있습니다.

Go 언어에서 bytes 패키지는 바이트 유형을 조작하기 위한 패키지이며 Split() 메서드와 같은 유용한 메서드를 많이 포함합니다. 그러나 Split() 메서드를 사용하는 경우 "정의되지 않음: bytes.Split" 오류가 발생할 수 있습니다. 이 오류는 일반적으로 Go 버전이 호환되지 않거나 필요한 종속 라이브러리가 부족하여 발생합니다. 이 기사에서는 이 오류를 해결하는 몇 가지 방법을 소개합니다. 방법 1: 다음과 같이 Go 버전을 업그레이드합니다.
