WP Adminify 年間で最もひどいサポートの夜は、白い画面で始まりました。 We'd は午後 11 時頃にバージョン 3.1.2 をアップデート サーバーにプッシュし、午前 2 時 40 分までに同じことを言うチケットを 14 枚持っていました。アップデートがインストールされ、サイトが停止しました。ロールバックし、マシンのジップを再テストしました。完全に動作しました。同じバージョン。同じファイル。
It took me embarrassingly long to do the obvious thing: hash both files. (訳注: 2 つのファイルをハッシュする) SHA-256 私のラップトップ上のzipと更新サーバーに座っているzipのsha-256 のdid& #39; tマッチします。 not even close - 完全に異なるダイジェスト。 uploadは転送の途中でどこかで切り捨てられ、サーバーは壊れたアーカイブを喜んで提供し、PHPは内部の不完全なファイルで窒息していました。 1人のユーザーが更新する前に、1つのチェックサム比較で捕まえられたでしょう。その夜以降、すべてのWP AdminifyリリースはデプロイログにSHA-256を印刷し、リモートハッシュがローカルハッシュと一致しない限り、アップロードスクリプトは公開を拒否しました。それ以来、破損したリリースはゼロです。
That's what hashing is, at its most practical: a fingerprint for data. file または string 内のフィード、短い固定長のダイジェストを取り戻す. if even one byte changes - a flipped bit, a truncated download, a sneaky edit - the digest changes completely.私は今、オンラインでハッシュジェネレータのために到達する週複数回: ダウンロードの検証、webhookの署名のデバッグ、環境間でのコンフィグファイルの比較、sanity-checking that two "identical" ファイルは実際にはそうです。
それが私がそれを組み込んだ理由です Toolz.dev。, ブラウザ内のすべてのものを計算するハッシュ ツールを望んでいた, 私に MD5, SHA-1, SHA-256, SHA-512 を並べて表示, 決してどこに私の入力のバイトをアップロードしない, このガイドは、それを使用する方法をカバーします。, what' s は、実際にボンネットの下で起こっている, そして、私が自分自身を作ったハッシュで 1 つの間違い - そして、私はまだ今日コードベースで見ていること。
tl;dr: を使用する Toolz.dev ハッシュ ジェネレーター md5、sha-1、sha-256、およびsha-512 ダイジェストをテキストまたはファイルから、web Crypto APIを介してブラウザで即座に完全に計算するには、デフォルトでSHA-256 を実行する必要があります。重要なものについてはSHA-256; MD5 とSHA-1 をレガシーチェックサムとしてのみ扱います。そして、パスワードにはこれらのいずれかを決して使用しないでください。 That's bcrypt または Argon2 領域。
主な機能
複数のアルゴリズムを同時に
入力は一度貼り付け、同時に計算されたMD5、SHA-1、SHA-256、およびSHA-512 を取得します.これは、小さな利便性のように聞こえるまで、あなた& #39; reデバッグ誰か他の& #39; sシステムとあなたがdon& #39; どのアルゴリズムを使用したか分からない.I& #39; これにリアルタイムを失った - 支払いゲートウェイ& #39; sドキュメントは、" SHAハッシュ" 番号が添付されていない、と私はそこに座って、1 つの一致するまで端末で一度に1 つのアルゴリズムをダイジェストを生成する 4 つのダイジェストすべてを一度に画面に表示すると、ちょうど1 つの値you& #39; re一致させようとしていると目玉になります.それはまた、直感的な違いを作ります: あなたは128 文字SHA-512 の隣に32 文字MD5 を見ることができ、すぐに何を理解する " digest size" 実際に意味します。
テキストとファイルのハッシュ
文字列を入力または貼り付けるか、ファイルをドロップします - ツールは両方を処理します テキストハッシュは日常的なケースをカバーします: API署名デバッグ、キャッシュキー、クイック比較 ファイルハッシュは、実際の検証作業が行われる場所です ダウンロードしたインストーラを公開チェックサムに対してチェックし、プラグインzipが更新サーバーへのトリップを生き残ったことを確認し、マシン間でそのままコピーされたデータベースダンプを検証します ファイルはどこにもアップロードされません; it' s ブラウザによってローカルに読み取られ、所定の位置にハッシュされます。 I've はこのようにして数百メガバイトの SQL ダンプをハッシュします。 it' s は、あなたや #39; d が期待するよりも高速です。なぜなら、重い物事は JavaScript ループではなくネイティブ ブラウザ コードで起こるからです。
Web クリプトによるインスタント クライアント側の計算
SHA ファミリのダイジェストは、ブラウザ & #39; s 内蔵 Web 暗号 API - を使用して計算されます crypto.subtle.digest- ブラウザに同梱されているネイティブで最適化された暗号コードを実行します。サーバー往復、キュー、スピナーはありません。マシンが入力を読み取ることができるのと同じくらい速く結果が得られます。これは 2 つの理由から重要です。 1 つ目は、速度: ハッシュはミリ秒で発生します。 2 つ目は、信頼です。計算はローカルであるため、コーヒー ショップでオンラインになっている場合でも、ロックダウンされたネットワークで機密コンフィグをハッシュしている場合でも、ツールは同じように動作します。ページは 1 回読み込まれます。; その後、ネットワークは無関係になります。
大文字と小文字の出力
些細な機能、本当の頭痛を節約します 六角ダイジェストは意味において大文字と小文字を区別しません - 2CF24DBA あんど 2cf24dba 同一のバイトをエンコードしますが、文字列の比較は don' わかりません。多くのシステムはダイジェストを大文字で保存または公開しますが (一部の Windows ツール、特定のベンダー チェックサム ページ)、ほとんどの Unix ツールは小文字でダイジェストを貼り付けます。 ' ダイジェストを比較スクリプトまたは正確な文字列照合を行う構成ファイルに貼り付け直すと、大文字と小文字が突然重要になります。切り替えとは、出力を大文字と小文字のコンバーターで実行したり、さらに悪いことに " fixing" 文字を手で太く指したりしてコピーすることを意味します。
比較モードと検証モード
ハッシュはジョブの半分だけです - 通常、あなた& #39; 期待値に対するダイジェストの再チェック 公開されたチェックサムを計算されたものの隣に貼り付け、ツールはそれらが一致するかどうかを即座に教えてくれます、64 六角文字で目を細める必要はありませんチェックサムの最初と最後の数文字を視覚的に比較してチェックサムを検証するために使用しました。 that& #39; s 真ん中の不一致を見逃す方法を正確に人間の目は長いランダムな文字列を比較するのがひどい; that& #39; s 等価チェックのジョブ。 verify モードでは、比較する前に大文字と小文字が正規化され、空白がトリミングされるため、最も一般的な誤報であるずさんなコピーペーストからの迷走したトレーリングスペースが削除されます。
100% プライベート - ブラウザから何も残らない
これは、私はToolz.devのすべてにわたって妥協することを拒否する機能です。 あなたの入力 - テキストまたはファイル - は、ローカルにハッシュされ、送信されることはありません。 There& #39; s サーバー側の処理なし、ログ記録なし、" 私たちはあなたのデータを匿名化します" 細かい印刷, なぜなら there& #39; s ログにデータなし これは、人々が実現するよりもハッシュにとって重要です: もの開発者ハッシュは、多くの場合、正確に彼らがすべきものです& #39; t ランダムなウェブサイトに貼り付けます - HMAC署名、ライセンスキー、顧客メールでダンプをデバッグ中のAPIシークレット クライアント側のツールで、リスクが蒸発します。 browser& #39; s ネットワークタブを開く 証明が必要な場合は、ハッシュ中にこのアーキテクチャが重要である理由について詳しく書きました データのプライバシーとオンライン ツール 投稿。
ハッシュ ジェネレーターの使い方
ステップ 1: ツールを開き、入力を選択します
に向かいます ハッシュジェネレーター。 you'll see an input area that accepts eithed/pasted text or a file. text, just start typing - hashing happens as you go.ファイルの場合、ドロップゾーンに1 つドラッグするか、ファイルピッカーを使用する。 nothing uploads; the file is read locally by your browser.There' s no size ceiling beyond what your machine' s memory is comfortable with.
ステップ 2: ダイジェストを読む
すべてのアルゴリズムは一度に計算します: MD5、SHA-1、SHA-256、SHA-512。各ダイジェストは、16 進数で、独自のラベル付き行に表示されます。長さに注意してください - MD5 は 32 文字、SHA-1 は 40 文字、SHA-256 は 64 文字、SHA-512 は 128 文字。 you'既知のチェックサムに対して再照合し、you'どのアルゴリズムがそれを生成したのかわからない場合は、通常、単一の文字を比較する前に長さだけでわかります。
ステップ 3: 必要に応じてケースを切り替える
もしシステム you' re matching against uses uppercase hex, flip the case toggle.ダイジェストバイトはどちらにしても同一です - これは純粋に文字列の書式設定に関するものです。 copy ボタンでダイジェストを手で選択するのではなくコピーします。; 128 文字の SHA-512 ダイジェストは部分的に選択するのが非常に簡単で、切り詰められたダイジェストは、それとの比較をすべて無音で失敗します。
ステップ 4: 予想されるハッシュに対して検証する
vendor's ダウンロードページまたは colleague's deploy log から公開されたチェックサムを入手しましたか? compare フィールドに貼り付けます。 tool は計算されたダイジェストと照合し、明確な一致または不一致を示します。 match は、データが元のハッシュを生成したものとバイトごとに同一であることを意味します。 mismatch は、変更されたものを意味します - 破損した転送、間違ったファイルバージョン、または改ざん。 Don't 不一致を合理化します。再ダウンロードして再度確認します。
MD5 と SHA-256: 内部で実際に起こっていること
暗号化ハッシュ関数は、任意の長さの入力を受け取り、ダイジェストと呼ばれる固定長の出力を生成します。 4 つのプロパティが役に立ちます。 決定論的ー同じ入力で常に同じダイジェストが得られます。 を示します アバランシェ効果ー入力の1 ビットを変更し、出力ビットのおよそ半分が反転する。 It' s 一方通行- there's no feasible path from digest back to input.そしてそれ' s 衝突しにくい- 同じダイジェストを生成する 2 つの異なる入力を見つけることは、計算上実行不可能であるはずです。
雪崩効果は、実際の値で見る価値があります。 のMD5 hello です 5d41402abc4b2a76b9719d911017c592。 1 文字を大文字にする - Helloー そして、あなたは得る 8b1a9953c4611296a827abf8c47804d7。 1 文字も移動していません。まったく関係のないダイジェストです。 SHA-256 と同じ話: hello ハッシュへのハッシュ 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824、その間 Hello 本質的に何も共有しないダイジェストを生成します。 それがポイントです。 ダイジェストが教えてくれる かどうか データは変更されませんでした いくら。
では、アルゴリズムです。 md5 1992 年に RFC 1321 で定義され、128 ビットのダイジェストを生成します。 it' s 高速、it' s どこでも - そして it' s 暗号的に壊れています。実用的な衝突攻撃は 2004 年から存在しています。研究者は、商品ハードウェア上で同じ MD5 ダイジェストを使用して 2 つの異なる入力を製造できます。これにより、敵対的なものは何でも殺されます。署名、証明書、攻撃者がコンテンツを代替する可能性のある整合性チェック。非敵対的なチェックサムには問題ありません - ファイル転送で偶発的な破損を検出して、独自のデータを重複排除します - ランダムな破損があるため、does' はそのバイトを選択できません。 シャ-1 (160 ビット) は長持ちしましたが、粉砕された攻撃は 2017 年に実際に衝突し、2 つの異なる PDF が 1 つの SHA-1 ダイジェストを共有するという事実を示しました。 Git は歴史的な理由で内部的に SHA-1 を使用していますが、新しいシステムは必要ありません。
ザ・ SHA-2 ファミリーー SHA-256 とその中の SHA-512 は - FIPS 180-4 で指定され、壊れていないままです。 SHA-256 は 256 ビットのダイジェストを提供し、ほとんどすべての正気のデフォルトです。 SHA-512 はより大きなダイジェストを提供し、しばしば もっと早く 64 ビット CPU では、64 ビット ワードで動作するため。
3 つの区別 人々は常にぼやけています。 ハッシング 一方通行です - キーも戻る方法もありません。 暗号化 双方向です。キーを持っている人なら誰でも復号化できます。 エンコーディング、base64 のように、ゼロウェイ保護です - it& #39; sは、誰でも元に戻すことができる表現の変更だけで、キーは必要ありません。 if you& #39; これまでにBase64 が" 暗号化、" として扱われるのを見たことがあります Base64 コンバーター なぜそれが問題なのかを元気よく説明してくれるでしょう。 Base64 エンコーディングガイド 詳細については、その違いを詳しく説明しています。
メッセージが共有シークレット - Webhook 署名、API リクエスト署名 - を保持している誰かから送信されたことを証明する必要がある場合、プレーン ハッシュ isn' は十分ではありません。なぜなら、誰でもハッシュできるからです。それ' s hmac、RFC 2104 で定義されている: ハッシュ関数をラップしてキーホルダーのみが有効なダイジェストを生成できるようにするキー構造。 HMAC-SHA256 は、これまでデバッグするほとんどの Webhook シグネチャ スキームの背後にある主力製品です。
そして大きなもの: 高速ハッシュでパスワードをハッシュしないでください。 ここでは高速が敵です - 漏洩したデータベースを持つ攻撃者は、GPUで毎秒数十億のMD5 またはSHA-256 推測をテストできます パスワードには意図的に遅く、塩漬けのアルゴリズムが必要です: bcryptまたはArgon2. Laravel' s Hash::make() はまさにこの理由でデフォルトでbcryptを使用し、wordpressは近代化する前にphpassポータブルハッシュスキームに何年も費やしました - 不完全ですが、本能 (それを遅くし、塩漬けにする) は正しい方法を学びました: 私の初期のフリーランスプロジェクト、WP Adminifyの数年前、パスワードを生のものとして保存しました md5($password)。 古典的な新人の動き。 誰も侵害されませんでしたが、それでも私はうんざりします。
Toolz.dev ツールが内部で行うことと、自分で書いたものは次のとおりです。
const data = new TextEncoder().encode('hello');
const buf = await crypto.subtle.digest('SHA-256', data);
const hex = [...new Uint8Array(buf)]
.map(b => b.toString(16).padStart(2, '0'))
.join('');
// "2cf24dba5fb0a30e26e83b2ac5b9e29e..."
または PHP では、1 行: hash('sha256', 'hello')。 同じ入力、同じダイジェスト、任意の言語、任意のマシン。 その決定論はすべての基盤です。
よくある使用例
ファイルのダウンロードとリリースのアーティファクトの確認
イントロで私を焼き払ったユースケース。 ベンダーがダウンロードの横にチェックサムを公開するのには理由があります。転送が破損し、ミラーが古くなり、悪意のある人がファイルを交換する場合があります。 ファイルをダウンロードして、ハッシュを ハッシュジェネレーター、公開された値と比較します。 match: ファイルは、発行者がハッシュしたものとバイト同一です。 mismatch: stop と再ダウンロード。 my own releases, the rule since that 2:40 am incident is mechanical - the deploy script computes SHA-256 locally, uploads, fetches the remote file's hash, and refuse to flip the "current version" pointer unless they're equal. it's maybe 8 lines of bash. it has catched two truncated uploads since, which would have been ticket floods. my entire pipeline.
キャッシュの破損と ETags
ブラウザは積極的にキャッシュします。「ハードリフレッシュしてください」は展開戦略ではありません。 堅牢な修正は、コンテンツ ハッシュ化されたファイル名です。ファイルの内容をハッシュして、ダイジェストのチャンクを名前に埋め込むので、 app.css なる app.2cf24dba.css。 内容の変更、ハッシュの変更、ファイル名の変更、キャッシュのミス、ユーザーは新しいファイルを取得します。 内容は同一、ファイル名は同一、キャッシュはヒットします。 Laravel ミックスとバイトはこれを自動的に行います。WP Adminify で、私は自家製バージョンを作成し、アセットのハッシュ化を作成して、 ver クエリ文字列 WordPress は、キューに入れられたスクリプトに追加されます - 1 つ多すぎると " 設定パネルが壊れているように見えます "本当に陳腐だったチケット CSS。同じ原理が ETag に電力を供給します。サーバーは応答をハッシュし、ブラウザはハッシュを送り返し、一致するとペイロードが満杯ではなく、小さな 304 を意味します。
重複排除コンテンツ
2 つのファイルが同一であるかどうかをバイト単位で比較せずに知りたい - または、異なるマシンに住んでいる場合? ハッシュ両方. equal digestsは等しいコンテンツを意味します (SHA-256 では、衝突オッズは非常に不条理に小さいですthey& #39; 考える価値はありません). これは美しくスケーリングします: 千のアップロードをハッシュし、ダイジェストを並べ替え、クラスタを複製します. I& #39; これを使用して、何年も蓄積されたWordPressメディアライブラリを推定しました logo.png、 logo-1.png、そして logo-final-2.png- ハッシュにより、実際には異なる名前を付けた同じ画像がどれであるかを明らかにしました。 It' s バックアップ ツールが何をスキップするかを決定する方法や、オブジェクト ストアが "upload" をどのように検出するかについても説明します。すでに保持されているコンテンツです。
Git スタイルのコンテンツ アドレッシング
Git does't はファイルを名前で保存します - それはハッシュで保存します すべてのブロブ、ツリー、およびコミットは、そのコンテンツのダイジェストによってアドレス指定されます (SHA-1 は歴史的に、SHA-256 移行が進行中です)。 That's コミット ID がハッシュのように見える理由: それら いる ハッシュ、そしてそれらはスナップショット、両親、作者、タイムスタンプをカバーしています。 歴史のどこかに変更を加え、すべてのダウンストリーム ハッシュを変更すると、Git の履歴を静かにするのではなく、大音量で変更することが可能になります。 これを理解すると、Git の問題をデバッグする方法が変わりました。 2 台のマシンがコミットについて意見が合わない場合、ハッシュを比較すると、同じオブジェクトを調べているのか、それとも異なる履歴を見ているのかがすぐにわかります。 コンテンツ アドレス指定は、レポジトリを保存するまでアカデミックに聞こえるアイデアの 1 つです。
秘密を公開せずに構成を比較する
ステージングは機能し、制作は行われません。 .env ファイルは異なります - しかし、あなたはdon' 生産秘密をSlackスレッドやスクリーンシェアに貼り付けたくない 各ファイルを独自のマシンでハッシュし、代わりにダイジェストを比較する 異なるハッシュは、単一の値を明らかにすることなく、ファイルの違いを確認することができます より細かく行く: ハッシュ 個々の行または特定のキーをピンポイントで特定します どっち エントリは発散します。 I& #39;この方法でホスティング サポートとの意見の相違を解決しました - "コンフィグのコピーは私のものと一致します'tは私のSHA-256と一致します&ここ'sはあなたのものをチェックします" 1 つのメッセージで議論を終了します。秘密が正確にどこにあるか、ダイジェストは違いまたは同一性を証明します。
Webhook シグネチャのデバッグ
Stripe、GitHub、Paddle - それらはすべて、通常はHMAC-SHA256 でWebhookペイロードに署名するため、リクエストが実際にそれらから来たものであることを確認できます。そして、検証が失敗すると、失敗は沈黙しているため、デバッグは惨めです: 署名はdon'tと一致し、ミドルウェアはいいえと言います。 10回中9回、犯人はペイロードです - フレームワークはJSONを再シリアル化し、空白またはキーの順序を変更したため、you'reは署名されたバイトとは異なるハッシュをハッシュします 生 パイプラインのさまざまな時点で本文をリクエストすると、バイトが変化する場所が正確に表示されます。 ルート ハンドラと検証機能の間でダイジェストが変更された場合、ボディに触れているレイヤーが見つかりました。 あなたがその近所にいる間、私の JWT デコーダ 署名付きトークンを検査する隣接作業に便利です。
MD5 と SHA-1 と SHA-256 と SHA-512 のどちらを使用する必要がありますか?
| アルゴリズム | ダイジェストサイズ | 相対速度 | セキュリティ ステータス | 適切な用途 |
|---|---|---|---|---|
| md5 | 128 ビット (32 進数文字) | 最速 | 壊れた - 2004 年以来の実用的な衝突 | 非敵対的チェックサム、レガシー システムの互換性、キャッシュ キー |
| シャ-1 | 160 ビット (40 進数文字) | はやく | 壊れた - SHAttered 衝突、2017 年 | 従来の Git 内部機能、古いシステムとの相互運用、新しいものは何もありません |
| SHA-256 | 256 ビット (64 進数文字) | はやく | 安全な | 整合性チェック、署名、コンテンツ アドレス指定、HMAC のデフォルト |
| SHA-512 | 512 ビット (128 16 進数文字) | 高速 (64 ビット CPU ではより高速) | 安全な | SHA-256 と同じ;余分なマージンまたは 64 ビットのスループットが必要な場合 |
私のスタンス、そして私はそれについて率直に言うでしょう: SHA-256 をデフォルトに設定し、それについて考えるのをやめてください。 It& #39; s 安全で、普遍的にサポートされており、コストに決して気づかないほど高速であり、it& #39; s ツールがすでに話しているもの - TLS 証明書、Docker イメージ ダイジェスト、パッケージ ロックファイル、Webhook 署名アルゴリズムの選択に費やされる精神的エネルギーは、ほとんどの場合、他の場所で費やされる方が良いです。
残す価値があるニュアンス: MD5 は放射性がありません。 スコープ.あなた自身のファイル上の偶発的な破損を検出する?罰金.人間の敵が衝突を偽造から利益を得ることができたものは何でも?絶対にそうではありません. SHA-1 は、より少ない言い訳で同じバケツに座っています - それに触れる唯一の正当な理由は、あなたがdon& #39; t制御するシステムとの互換性です. SHA-512 は、現代の64 ビットハードウェアでは、罰金選択であり、時折高速ですが、128 文字のダイジェストは、ログやURLでは扱いにくく、SHA-256 のセキュリティマージンは、すでに任意の現実的な攻撃と4 つの - 繰り返し、どれも - パスワードフィールドの近くに属していません。
よくある質問
MD5 はまだ安全に使用できますか?
セキュリティについては、いいえ。実際的な衝突攻撃は 2004 年から存在しており、攻撃者は同じ MD5 ダイジェストを使用して 2 つの異なるファイルを作成できます。署名、証明書、パスワードの保存、または改ざんが懸念される整合性チェックには決して使用しないでください。偶発的な破損の検出、独自のファイルの重複排除、キャッシュ キーの生成など、誰もあなたをだまそうとしている敵対的ではないジョブでは引き続き許容されます。疑わしい場合は、SHA-256 を使用してください。; それには費用はかかりません。
ハッシュを元のデータに戻すためにハッシュを元に戻すことはできますか?
いいえ ハッシュ関数は設計上一方向です - ダイジェストにはほとんどの入力よりもはるかに少ない情報が含まれているため、一般に反転は数学的に不可能です 攻撃者が実際に行うことは推測です: 数十億の候補入力をハッシュし、レインボーテーブルやGPUのブルートフォースを使用してダイジェストを比較することは、高速アルゴリズムでハッシュ化されたパスワードのような短く一般的な入力に対して恐ろしくうまく機能します。そのため、パスワードには単純な MD5 や SHA-256 ではなく、遅い塩漬けのハッシュが必要です。
ハッシュと暗号化の違いは何ですか?
暗号化は双方向です: データはキーでスクランブルされ、右のキーを持っている人は誰でも元のキーに復号化できます。ハッシュ化は一方方向です: データからダイジェストを計算できますが、ダイジェストからデータを回復することはできません - キーも復号化もありません。データを返却する必要がある場合は暗号化を使用し、検証または比較するだけでよい場合はハッシュを使用します。 Base64、記録のために、どちらでもない - エンコードです。
パスワードにはどのハッシュを使用すればよいですか?
このツールのどれでもない。 MD5、SHA-1、SHA-256、SHA-512 はすべて高速で、高速はパスワードにとって致命的 - GPUは、漏洩したデータベースに対して毎秒数十億の推測をテストできる、意図的に遅く塩漬けされたアルゴリズム: bcrypt または Argon2 を使用する。 Laravel's Hash::make()はデフォルトで bcrypt を使用し、最新のフレームワークのほとんどは同等のパスワードストレージ用の生のハッシュコールを記述している場合は、代わりに framework's パスワードハッシュAPI のために停止して到達する。
オンライン ツールで機密データをハッシュするのは安全ですか?
ツールが本当にクライアント側である場合に限ります。 Toolz.dev Hash Generator は、Web Crypto API を使用してブラウザー内のすべてのダイジェストを計算します。入力は、送信、ログ記録、またはサーバーに保存されることはありません。ハッシュ中にネットワーク タブを見て、自分でこれを確認できます。サーバー側ツールを使用すると、貼り付けたものは何でも未知の演算子を信頼することになります。これは、API シークレット、キー、または顧客データの取引が疑わしい場合は、貼り付ける前に確認してください。
「こんにちは」と「こんにちは」はなぜまったく異なるハッシュを生成するのですか?
それが雪崩効果であり 意図的です 優れたハッシュ関数は 1 つの入力ビットでも変化すると 出力ビットのおよそ半分を反転させるので 類似した入力では 大きく異なるダイジェストを生み出します 1 つの文字を大文字にすると 1 バイト変化しますが ダイジェストは認識できなくなります これは特徴で ダイジェストによって 2 つの入力がどれだけ似ているか 何も明らかにならず ハッシュを比較すると どんな変化も - どんなに小さくても - 見逃すことは できなくなります。
SHA-256 と SHA-512 の違いは何ですか?
どちらも FIPS 180-4 で指定された SHA-2 ファミリーに属し、どちらも安全であると見なされます。 SHA-256 は 32 ビット操作を使用して 256 ビットのダイジェストを生成します。SHA-512 は 64 ビット操作を使用して 512 ビットのダイジェストを生成します。これにより、多くの場合、64 ビットのプロセッサーで高速化されます。 実際には、SHA-256 はエコシステムのデフォルトであり、ダイジェストの長さは半分で、ログと URL を管理しやすくします。 セキュリティ マージンを増やすか、64 ビットのスループットを得るには SHA-512 を選択してください。それ以外の場合は、SHA-256 で十分です。
プレーンなハッシュの代わりに HMAC が必要なのはいつですか?
ハッシュされた内容だけでなく、誰がハッシュを生成したかを証明する必要があるときはいつでも HMAC を使用します。プレーン ダイジェストは誰でも計算できるため、整合性は検証できますが、発信元は検証できません。 RFC 2104 で定義されている HMAC は、ハッシュ プロセスに秘密キーを混合します。キーを保持している当事者だけが有効な署名を生成または検証できます。これは、Stripe、GitHub、および同様のサービスからの Webhook 署名の背後にあるメカニズムであり、ほとんどの場合、生の要求ボディ上の HMAC-SHA256 として行われます。
信仰ではなく、指紋を付けて出荷する
ハッシュは、& #39; s のディープ コンピューター サイエンスとデッド シンプルな日常実践の両方を備えた珍しいツールです。あなたは、& #39; メルクルの構築物を理解して恩恵を受ける必要はありません。習慣が必要です。リリース成果物をハッシュします。ダウンロードを確認します。ファイルを観察するのではなく、ダイジェストを比較します。これらの習慣はすべて 30 秒間の作業であり、それぞれが、ある時点で、サポート キューで謝罪に費やしていたであろう夜を救ってくれました。
ザ・ Toolz.dev ハッシュ ジェネレーター は、その習慣を摩擦のないものにするために作られています。一度に 4 つのアルゴリズム、テキストとファイル、検証モード、すべてがアップロードされていないブラウザで計算されます。 近隣の概念を調べている場合、 Base64 コンバーター エンコーディング (およびセキュリティがセキュリティにならない理由) について説明します。 パスワード ジェネレーター SHA-256 で絶対にハッシュしないでください。 JWT デコーダ ストーリーの署名付きトークンの側面を締めくくります。
全体像のために、私の コーディング ツール ガイド 残りの開発者ツールボックスを調べて、 オンライン ツールのデータ プライバシー クライアント側の処理が、私が選んだ決断の丘である理由を説明しています。 ハッシュ 1 番、デプロイ 2 番。 午前 2 時 40 分、あなたは感謝します。



