BKDRHash php兑现

Jun 13, 2016 am 11:02 AM
floatval hash str

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?>
로그인 후 복사

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP에서 Redis Hash 작업을 구현하는 방법 PHP에서 Redis Hash 작업을 구현하는 방법 May 30, 2023 am 08:58 AM

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

Laravel 개발: Laravel Hash를 사용하여 비밀번호 해시를 생성하는 방법은 무엇입니까? Laravel 개발: Laravel Hash를 사용하여 비밀번호 해시를 생성하는 방법은 무엇입니까? Jun 17, 2023 am 10:59 AM

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

Python 내장 유형 str 소스 코드 분석 Python 내장 유형 str 소스 코드 분석 May 09, 2023 pm 02:16 PM

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

Python에서 __str__과 __repr__의 유사점과 차이점은 무엇입니까? Python에서 __str__과 __repr__의 유사점과 차이점은 무엇입니까? Apr 29, 2023 pm 07:58 PM

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

하나의 기사로 해시 알고리즘과 애플리케이션 시나리오를 이해하세요. 하나의 기사로 해시 알고리즘과 애플리케이션 시나리오를 이해하세요. Apr 13, 2023 am 11:55 AM

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

Jul 24, 2023 pm 11:57 PM

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

Redis의 기본 데이터 타입인 Hash의 일반적인 연산 예시 분석 Redis의 기본 데이터 타입인 Hash의 일반적인 연산 예시 분석 May 31, 2023 am 10:43 AM

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

매일 사용하세요! HASH가 무엇인지 아시나요? 매일 사용하세요! HASH가 무엇인지 아시나요? Jul 26, 2023 pm 02:47 PM

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

See all articles