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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでRedisハッシュ操作を実装する方法 PHPでRedisハッシュ操作を実装する方法 May 30, 2023 am 08:58 AM

ハッシュ演算 //ハッシュテーブルのフィールドに値を代入します。成功した場合は 1 を返し、失敗した場合は 0 を返します。ハッシュ テーブルが存在しない場合は、まずテーブルが作成されてから値が割り当てられ、フィールドが既に存在する場合は古い値が上書きされます。 $ret=$redis->hSet('user','realname','jetwu');//ハッシュ テーブル内の指定されたフィールドの値を取得します。ハッシュ テーブルが存在しない場合は false を返します。 $ret=$redis->hGet('ユーザー','rea

Laravel 開発: Laravel ハッシュを使用してパスワード ハッシュを生成するにはどうすればよいですか? Laravel 開発: Laravel ハッシュを使用してパスワード ハッシュを生成するにはどうすればよいですか? Jun 17, 2023 am 10:59 AM

Laravel は現在最も人気のある PHP Web フレームワークの 1 つであり、開発者に多くの強力な機能とコンポーネントを提供しており、LaravelHash もその 1 つです。 LaravelHash は、パスワードを安全に保ち、アプリケーションのユーザー データをより安全にするために使用できるパスワード ハッシュ用の PHP ライブラリです。この記事では、LaravelHash の仕組みと、LaravelHash を使用してパスワードをハッシュし検証する方法を学びます。 Lara を学習するための前提知識

Python組み込み型strソースコード解析 Python組み込み型strソースコード解析 May 09, 2023 pm 02:16 PM

1 Unicode コンピュータ ストレージの基本単位は 8 ビットで構成されるバイトです。英語は 26 文字といくつかの記号のみで構成されているため、英語の文字はバイト単位で直接格納できます。ただし、他の言語 (中国語、日本語、韓国語など) では、文字数が多いため、エンコードに複数のバイトを使用する必要があります。コンピューター技術の普及に伴い、非ラテン文字エンコード技術は発展を続けていますが、依然として 2 つの大きな制限があります。 多言語サポートがないこと。 ある言語のエンコード スキームを別の言語で使用することはできません。また、統一された標準もありません。たとえば、中国語には 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()))>>>

ハッシュ アルゴリズムとアプリケーション シナリオを 1 つの記事で理解する ハッシュ アルゴリズムとアプリケーション シナリオを 1 つの記事で理解する Apr 13, 2023 am 11:55 AM

1. ハッシュアルゴリズムとは? ハッシュとハッシングはどちらもハッシュという言葉から来ており、前者は音訳、後者は意訳です。任意の長さのバイナリ値を固定長のバイナリ値にマッピングできるアルゴリズムで、マッピングされた固定長のバイナリ値をハッシュ値と呼びます。優れたハッシュ アルゴリズムは、次の要件を満たす必要があります: ハッシュ値から元のデータを逆に推定できないこと、入力データの影響を非常に受けやすく、ビットが異なるとハッシュ値が大きく異なることになること、ハッシュの確率が高いこと競合は非常に小さい必要があります; ハッシュ アルゴリズムの計算プロセスは単純かつ効率的である必要があり、元のデータが非常に長い場合でも、ハッシュ値を迅速に取得できます; 2. ハッシュ アルゴリズムの使用シナリオ 2.1 安全な暗号化 詳細一般的なハッシュ暗号化アルゴリズムには MD5 (MD5 Message-Dige) が含まれます。

PHP関数「floatval」を使用して変数をfloatに変換します PHP関数「floatval」を使用して変数をfloatに変換します Jul 24, 2023 pm 11:57 PM

PHP 関数「floatval」を使用して変数を浮動小数点型に変換する PHP では、変数を浮動小数点型に変換する必要がよくあります。これは、数値計算や通貨取引などを扱う場合に便利です。 PHP には、変数を浮動小数点型にすばやく変換するのに役立つ「floatval」と呼ばれる組み込み関数が用意されています。 「floatval」関数の構文は次のとおりです。 floatval(mixed$var): float この関数はパラメータ $var を受け取ります。

毎日使ってください! HASHって知っていますか? 毎日使ってください! HASHって知っていますか? Jul 26, 2023 pm 02:47 PM

ハッシュ法の主な考え方は、キー値に基づいてノードのストレージ アドレスを決定することです。キー値 K を独立変数として取り、特定の関数関係 h(K) (ハッシュ関数と呼ばれます) を通じて、ノードのストレージ アドレスを決定します。 、対応する関数値が来ます

Redisの基本データ型であるHashの一般的な操作例の分析 Redisの基本データ型であるHashの一般的な操作例の分析 May 31, 2023 am 10:43 AM

Redis データ型の共通操作 Hash Redis の Hash は、文字列型のフィールドと値のマッピング テーブルです。オブジェクトの保存に特に適しており、各ハッシュは 40 億を超えるキーと値のペアを保存できます。 Python に慣れている子供用の靴は、Python を辞書の辞書と考えることができます。以前のデータ型ストレージは k-v で、ハッシュ ストレージは k-dict で、dict には独自の k-v が設定されます。 1. hset はハッシュ テーブルのフィールドに値を割り当てますが、ハッシュ テーブルが存在しない場合は、新しいハッシュ テーブルを作成して hset 操作を実行します。フィールドがハッシュ テーブルにすでに存在する場合、古い値は上書きされます。 hsetmyhashk1v1 2、h

See all articles