BKDRHash php兑现
BKDRHash php实现
接上一帖 BKDRHash的php实现 比c语言版本复杂的部分,是由于php中整型数的范围是,且一定是-2147483648 到2147483647,并且没有无符号整形数,在算法中会出现大数溢出的问题,不能使用intval,需要用floatval,同时在运算过程中取余保证不溢出。
<?phpfunction BKDRHash($str){ $seed = 131; // 31 131 1313 13131 131313 etc.. $hash = 0; $cnt = strlen($str); for($i = 0; $i < $cnt; $i++) { $hash = ((floatval($hash * $seed) & 0x7FFFFFFF) + ord($str[$i])) & 0x7FFFFFFF; } return ($hash & 0x7FFFFFFF);}echo BKDRHash('ggsonic');//1471979560echo BKDRHash('asdfasdfasdf123'); // 1220655578?>

핫 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)

뜨거운 주제











해시 연산 //해시 테이블의 필드에 값을 할당합니다. 성공하면 1을, 실패하면 0을 반환합니다. 해시 테이블이 없으면 테이블이 먼저 생성된 후 값이 할당됩니다. 필드가 이미 있으면 이전 값을 덮어씁니다. $ret=$redis->hSet('user','realname','jetwu');//해시 테이블에서 지정된 필드의 값을 가져옵니다. 해시 테이블이 없으면 false를 반환합니다. $ret=$redis->hGet('사용자','지역

Laravel은 현재 가장 인기 있는 PHP 웹 프레임워크 중 하나이며 개발자에게 많은 강력한 기능과 구성 요소를 제공하며 LaravelHash도 그 중 하나입니다. LaravelHash는 비밀번호를 안전하게 유지하고 애플리케이션의 사용자 데이터를 더욱 안전하게 만드는 데 사용할 수 있는 비밀번호 해싱용 PHP 라이브러리입니다. 이 글에서는 LaravelHash의 작동 방식과 이를 사용하여 비밀번호를 해시하고 확인하는 방법을 알아봅니다. 라라 학습을 위한 필수 지식

1유니코드 컴퓨터 저장의 기본 단위는 8비트로 구성된 바이트(byte)이다. 영어는 26개의 문자와 여러 개의 기호로만 구성되므로 영어 문자를 바이트 단위로 직접 저장할 수 있습니다. 하지만 다른 언어(예: 중국어, 일본어, 한국어 등)는 문자 수가 많기 때문에 인코딩에 여러 바이트를 사용해야 합니다. 컴퓨터 기술이 확산됨에 따라 비라틴어 문자 인코딩 기술이 계속 발전하고 있지만 여전히 두 가지 주요 제한 사항이 있습니다. 다국어 지원이 불가능합니다. 한 언어의 인코딩 방식을 다른 언어에서 사용할 수 없으며 통일된 표준이 없습니다. 예를 들어 중국어에는 GBK, GB2312, GB18030 등과 같은 여러 인코딩 표준이 있습니다. 인코딩 방법이 통일되어 있지 않기 때문에 개발자는 서로 다른 인코딩 간에 전환해야 하며 많은 오류가 필연적으로 발생합니다.

__str__과 __repr__의 유사점과 차이점은 무엇입니까? 우리 모두는 문자열 표현을 알고 있습니다. Python의 내장 함수인 repr()은 식별을 용이하게 하기 위해 문자열 형식으로 객체를 표현할 수 있습니다. 이것이 "문자열 표현"입니다. repr()은 특수 메소드 __repr__을 통해 객체의 문자열 표현을 얻습니다. __repr__이 구현되지 않은 경우 벡터의 인스턴스를 콘솔에 인쇄하면 결과 문자열이 구현될 수 있습니다. >>>classExample:pass>>>print(str(Example()))>>>

1. 해싱 알고리즘이란 무엇입니까? 해싱과 해싱은 모두 해시라는 단어에서 유래되었습니다. 전자는 음역이고 후자는 자유 번역입니다. 임의 길이의 이진 값을 고정 길이 이진 값으로 매핑할 수 있는 알고리즘입니다. 매핑된 고정 길이 이진 값을 해시 값이라고 합니다. 우수한 해시 알고리즘은 다음 요구 사항을 충족해야 합니다. 해시 값에서 원본 데이터를 역으로 추론할 수 없으며 입력 데이터에 매우 민감하며 다른 비트로 인해 해시 값이 매우 달라집니다. 충돌이 매우 작아야 하며 해시 알고리즘의 계산 프로세스는 충분히 간단하고 효율적이어야 하며 원본 데이터가 매우 길더라도 해시 값을 빠르게 얻을 수 있습니다. 2. 해시 알고리즘의 사용 시나리오 2.1 안전한 암호화 일반적인 해시 암호화 알고리즘에는 MD5(MD5 Message-Dige)가 포함됩니다.

PHP 함수 "floatval"을 사용하여 변수를 부동 소수점 유형으로 변환합니다. PHP에서는 변수를 부동 소수점 유형으로 변환해야 하는 경우가 많습니다. 이는 수치 계산, 통화 거래 등을 처리할 때 유용합니다. PHP는 변수를 부동 소수점 유형으로 빠르게 변환하는 데 도움이 되는 "floatval"이라는 내장 함수를 제공합니다. "floatval" 함수의 구문은 다음과 같습니다: floatval(mixed$var): float 함수는 $var 매개변수를 허용합니다.

Redis 데이터 유형 Hash의 일반적인 작업 Redis의 Hash는 문자열 유형 필드와 값의 매핑 테이블입니다. 특히 객체 저장에 적합한 각 해시는 40억 개 이상의 키-값 쌍을 저장할 수 있습니다. 파이썬에 익숙한 어린이 신발은 사전적 딕셔너리라고 생각하시면 됩니다. 이전 데이터 유형 저장소는 k-v이고 해시 저장소는 k-dict이며 dict는 자체 k-v를 갖습니다. 1. hset은 해시 테이블의 필드에 값을 할당합니다. 해시 테이블이 없으면 새 해시 테이블을 생성하고 hset 작업을 수행합니다. 해당 필드가 해시 테이블에 이미 존재하는 경우 이전 값을 덮어씁니다. hsetmyhashk1v1 2, h

해싱 방법의 주요 아이디어는 키 값을 기반으로 노드의 저장 주소를 결정하는 것입니다. 즉, 키 값 K를 독립 변수로 취하고 특정 함수 관계 h(K)를 통해(해시 함수라고 함) , 해당 함수 값이 온다
