>  기사  >  백엔드 개발  >  PHP에서 고유한 문자열을 생성하는 방법은 무엇입니까?

PHP에서 고유한 문자열을 생성하는 방법은 무엇입니까?

WBOY
WBOY원래의
2016-09-25 09:37:031064검색

PHP를 사용하여 고유한 문자열을 생성하는 방법은 무엇입니까?
YouTube 끝에 표시되는 문자열과 같습니다: 6Af6b_wyiwI(URL에서 허용되는 문자)
그리고 대소문자를 구분하나요?
그리고 매번 나타나는 문자열의 길이를 설정할 수 있습니다
예를 들어 4~7개의 무작위
는 ga79e aa09gsw awe9f 등이 됩니다(매번 이렇게 변경됩니다

답글 내용:

PHP를 사용하여 고유한 문자열을 생성하는 방법은 무엇입니까?
YouTube 끝에 표시되는 문자열과 같습니다: 6Af6b_wyiwI(URL에서 허용되는 문자)
그리고 대소문자를 구분하나요?
그리고 매번 나타나는 문자열의 길이를 설정할 수 있습니다
예를 들어 4~7개의 무작위
는 ga79e aa09gsw awe9f 등이 됩니다(매번 이렇게 변경됩니다

MD5 또는 SHA1로 암호화할 수 있는 타임스탬프를 사용하는 것이 좋지만 길이가 고정되어 있고 대소문자가 고정되어 가로채거나 암호화 규칙을 직접 정의할 수 있습니다. 원하는 길이를 설정할 수 있습니다. 중복 가능성은 없습니다(불가능한 사건)
문자열을 직접 정의한 후 무작위로 얻으면 중복 가능성(작은 확률 사건)이 있습니다.
URL만 적으면
segmentfault의 URL 작성 방법도 참고할 수 있습니다

https://segmentfault.com/q/10...

순차적으로 증가하는 시퀀스를 생성한 후 ASCII 코드를 통해 문자열로 변환

PHP 10진수 및 16진수 변환:

<code>echo gmp_strval(gmp_init('9876543210', 10), 62)."\n"; //AmOy42
echo gmp_strval(gmp_init('AmOy42', 62), 10)."\n";     //9876543210</code>

위의 AmOy42는 실제로 원하는 "문자열"이어야 합니다.
62진법(10+26+26)은 숫자 10개 + 소문자 26개 + 대문자 26개를 사용합니다. 문자를 사용하여 값을 표현함으로써 자릿수를 크게 줄였습니다.
9876543210은 데이터베이스에서 자체적으로 증가하는 ID이므로

간단한 방법으로 sha256과 같은 해시 알고리즘은 (16진수 문자열 대신) 바이너리 데이터를 얻은 다음 base64 인코딩을 사용합니다

이런 참조 단축링크 생성 방식도 괜찮습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.