ForHosting KIT · 開発者向けツール

FNV-1aハッシュ計算

各バイトを混ぜてから掛け算する方式で、テキストのFNV-1aハッシュを求めます。foobarは32ビットでbf9cf968、64ビットなら16桁の16進数になり、ハッシュ表やブルームフィルター、キャッシュのキーに使える安定した値です。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日
入力した場合
テキスト
foobar
ビット数
32
結果
ビット
32
ハッシュ
bf9cf968
ハッシュ (整数)
3,214,735,720
バイト
6

FNV-1aはFowler–Noll–Voハッシュの代替形です。暗号ハッシュより安価で、単純な合計より順序に敏感な32ビットまたは64ビットの安定したタグが必要なとき、開発者はFNV-1aを選びます。このFNV-1aハッシュツールは平文を受け取り、UTF-8として直列化し、小文字の16進文字列—32ビットプロファイルでは8桁、64ビットでは16桁—に加え整数形、UTF-8バイト長、選択した幅、元文字列の長さがゼロのときのemptyフラグを返します。

FNV-1aの意味と32ビット・64ビットプロファイルの違い

Fowler–Noll–Voハッシュは、文書化されたオフセット基底から始め、各入力バイトについてまず実行中のハッシュにそのバイトを排他的論理和し、次にその幅向けの素数を掛けて、固定幅の残差にメッセージを畳み込みます。代替形FNV-1aは乗算の前に排他的論理和を適用します。古いFNV-1は先に乗算します。

この能力はFNV-1aのみを実装します。今日の多くの言語エコシステムとハッシュテーブルの教程が引用する順序だからです。32ビットでは基底はゼロ-x-八-一-一-c-九-d-c-五、素数はゼロ-x-ゼロ-一-ゼロ-ゼロ-ゼロ-一-九-三で、8桁の小文字hex文字列になります。

64ビットでは基底はゼロ-x-c-b-f-二-九-c-e-四-八-四-二-二-二-三-二-五、素数はゼロ-x-一-ゼロ-ゼロ-ゼロ-ゼロ-ゼロ-ゼロ-ゼロ-一-b-三で、16桁のhexになります。FNV-1aはテーブルでの高速ハッシュと軽量な完全性タグ向けであり、暗号ハッシュではありません。

意図的な衝突耐性、パスワード保管、署名方式が必要な場面では使ってはいけません。第三者ツールが同じUTF-8バイトで食い違う場合、ほぼ常にFNV-1aではなくFNV-1を使っているか、幅が違うか、UTF-8バイトではなくUTF-16符号単位をハッシュしています。

FNV-1aハッシュが役立つ場面

開発者は、言語ランタイムやレガシープロトコルメモに合うコンパクトな32ビットまたは64ビットのバケット索引が必要なとき、短いキー、設定断片、キャッシュ識別子をFNV-1aハッシュ計算機に貼り付けます。サポート技術者はチケット文からダイジェストを再計算し、貼り付けたダンプが途中で切り詰められたり再符号化されたりしていないかを確認します。

継続的インテグレーションのジョブは既知の文字列ベクトル—例としてfoobarを32ビットのbf9cf968へ—と空入力フィクスチャを固定し、偶発的なFNV-1とFNV-1aの入れ替えがビルドを即座に失敗させます。失敗した検証は残高を消費しません。

ハッシュテーブルのキーとバケットタグ

テーブルのバケット、ブルームフィルタ、キャッシュシャードキー向けに安定した32/64ビット非暗号指紋が必要なとき、短い文字列のFNV-1aを計算します。

教室とサポートのデモ

数文字の編集でFNV-1aのhexがどう変わるかを、ローカルユーティリティや暗号ライブラリを入れずに学生と運用担当者に示します。

32ビットと64ビットのFNV-1aの違いは何ですか?

どちらも各UTF-8バイトにFNV-1aの排他的論理和のあと乗算を使いますが、オフセット基底と素数が異なります。32ビットはhex8桁、64ビットは16桁です。bitsを省略すると既定は32です。

空入力ではどうなりますか?

空テキストは有効です。 応答はemptyをtrue、hashを選択幅のオフセット基底(32ビットは811c9dc5、64ビットはcbf29ce484222325)、bytesを0にします。

FNV-1aは暗号ハッシュですか?

いいえ。 FNV-1aはテーブルや軽量指紋向けの高速な非暗号ハッシュです。パスワード、署名、攻撃者に対する衝突耐性のある完全性には使わず、そうした用途ではSHA系ダイジェストを使ってください。

ほかのツールとFNV-1aの結果が違うのはなぜですか?

同じテキストなら、相手のツールはたいてい、掛けてから混ぜるFNV-1を使っているか、幅が違うか、UTF-8のバイトではなくUTF-16の単位でハッシュしています。このツールはUTF-8のバイトをFNV-1aの順番で計算します。

FNV-1aハッシュはどう計算しますか?

32ビットでは決まった開始値0x811c9dc5から始めます。テキストの各バイトを排他的論理和で現在の値に混ぜ、その値に素数0x01000193を掛けて32ビットに収めることを繰り返します。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/enc/fnv1a

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/enc/fnv1a \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"foobar"}'
{
  "text": "foobar"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.fnv1a",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

固定のオフセット基底、慎重に選ばれた素数、バイトごとの排他的論理和のあと乗算という手順から成る高速な非暗号ダイジェストで、ハッシュテーブル、ブルームフィルタ、コンパクトな指紋フィールドでよく使われます。ネットワーク呼び出し、乱数ソルト、壁時計は計算に入らず、成功パスはすべて公開の基本価格$0.002での純粋な算術です。

FNV-1aの意味と32ビット・64ビットプロファイルの違い

空入力では残差はオフセット基底そのものになり、このエンドポイントはemptyをtrueにして、意図した空白と欠落フィールドをクライアントが区別できるようにします。

入力契約、応答フィールド、空入力の扱い

任意のbitsは幅を選びます。32(既定)または64です。空文字列は意図的に許可されています。元の長さがゼロのとき、応答はemptyをtrue、hashを選択幅の基底hex、bytesをゼロにします。FNV-1、MD5、SHA、CRCへのモード切替はありません。それらのダイジェストが必要な場合は専用能力を使い、各ランディングが単一の検索意図とSEOスラッグに一致するようにしてください。ハッシュしたい文字列を必須フィールドtextに設定したJSON本体を送信してください。別名input、value、s、string、contentも受け付けるため、古いフォームや短いクライアントでも結合できます。別名widthとbit_widthも受け付け、数値形・文字列形のどちらも使えます。有限数と大きな整数はハッシュ前に文字列化され、オブジェクト、配列、真偽値、null、Infinity、NaNはinvalid_inputを起こし課金されません。ゼロバイト上のFNV-1aの数学的恒等はオフセット基底であり、任意フィールドに指紋を付けるパイプラインは硬い失敗ではなく安定した残差を必要とするからです。空でない入力ではemptyはfalse、bytesはUTF-8長、hashはゼロ-x接頭辞なしの小文字hexダイジェスト、hash_intは32ビットでは符号なし整数として、64ビットではJSONで完全な符号なし範囲が正確に保たれるよう10進文字列として同じ値を運びます。algorithmは常にラベルFNV-1a、offset_basisとprimeは選択幅のパラメータ文字列を返し、OpenAPIの例やサポート回答がプロファイルを曖昧さなく引用できます。

FNV-1aハッシュAPIが役立つ場面

教育ラボは同じエンドポイントで、1文字の変更が多くのhex桁を反転させる様子を示し、暗号装置を持ち込まずにアバランシェ挙動を説明します。実装は純粋なparseのティアAなので、成功した呼び出しはモデルトークンも外向きネットワークもなく公開の基本価格$0.002です。ペイロードを文書化された文字上限内に保ち、hexフィールドを正規の貼り付け先として扱い、別のハッシュサービスを立てずにドキュメント、SDK、エッジワーカー、教室デモ向けの再現可能なFNV-1a値を得てください。

CIゴールデンベクトルと空入力フィクスチャ

foobar → bf9cf968(32ビット)と空 → オフセット基底を固定し、FNV-1とFNV-1aの取り違えやUTF-8符号化のずれを継続的インテグレーションが即座に検出できるようにします。

テキストのFNV-1aハッシュはどのように計算しますか?

textに文字列を、任意のbitsに32または64(既定32)を入れたJSONを送ってください。hashフィールドはUTF-8バイト上のFNV-1aダイジェストの小文字hexを返します。hash_intは同じ値の符号なし整数です(32ビットは数値、64ビットは10進文字列)。

FNV-1aハッシュ計算機の料金はいくらですか?

ブラウザツールは無料です。API要求は成功した呼び出しごとに前払いKIT残高から$0.002です。無効な入力は課金されません。

KITの完全なドキュメントを見る →