問題タブ [hash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 特定の長さの文字列のハッシュ
ハッシュ自体が特定の長さになるように、文字列のハッシュを生成する方法はありますか? 41 バイトのハッシュ (SHA-1) を生成する関数がありますが、最大 33 バイトにする必要があります (特定のハードウェア制限のため)。41 バイトのハッシュを 33 に切り詰めると、おそらく (確実に!) 一意性が失われます。
または、実際には、あなたの助けを借りて C コードを見つけることができれば、MD5 アルゴリズムがうまく適合すると思います。
編集: 迅速で知識豊富な回答に感謝します。私は MD5 ハッシュを使用することにしましたが、それは私の目的にぴったりです。一意性は重要な問題ですが、特定の時点でこれらのハッシュの数が非常に多くなるとは思いません。これらのハッシュはホーム LAN 上のソフトウェア サーバーを表すため、最大で 5 つ、おそらく 10 が実行されます。
ruby - Rubyのハッシュの配列から一意の要素を取得するにはどうすればよいですか?
ハッシュの配列があり、そこから一意の値が必要です。電話をかけArray.uniq
ても、私が期待するものは得られません。
私が期待したところ:
ネットで検索してみたところ、満足できる解決策は思いつきませんでした。人々は再定義Hash.eql?
を推奨しました、そしてそれがクエリHash.hash
しているものだからです。Array.uniq
編集:私が現実の世界でこれに遭遇したところ、ハッシュは少し複雑でした。それらは、複数のフィールドを持つ解析されたJSONの結果であり、その一部の値もハッシュでした。一意の値を除外したい結果の配列がありました。
Hash.eql?
再定義とHash.hash
ソリューションは好きではありませんHash
。グローバルに再定義するか、配列のエントリごとに再定義する必要があるためです。各エントリの定義を変更するのはHash
面倒です。特に、各エントリ内にネストされたハッシュがある場合があるためです。
Hash
特に一時的に行われた場合、グローバルに変化する可能性があります。古い定義を保存して復元することをラップした別のクラスまたはヘルパー関数を作成したいのですが、これにより、実際に必要とされるよりも複雑になると思います。
を使用inject
することは、を再定義するための良い代替手段のようHash
です。
hash - 今日一般的に利用可能な最も強力なハッシュアルゴリズムは何ですか?
私はWebアプリケーションを構築しており、パスワードに可能な限り強力なハッシュアルゴリズムを使用したいと考えています。sha512、whirlpool、ripemd160、tiger192,4の違いは何ですか?どちらが暗号的に強いと見なされますか?
encryption - ユーザーパスワードソルトの最適な長さはどれくらいですか?
ユーザーのパスワードをソルトおよびハッシュする場合は、ソルトがあれば明らかに役立ちます。塩の長さに関するベストプラクティスはありますか?ソルトをユーザーテーブルに保存するので、ストレージサイズとセキュリティの間の最良のトレードオフが必要です。ランダムな10文字の塩で十分ですか?それとももっと長いものが必要ですか?
encryption - 難読化、ハッシュ、暗号化の違いは何ですか?
難読化、ハッシュ、暗号化の違いは何ですか?
ここに私の理解があります:
- ハッシュは一方向のアルゴリズムです。元に戻すことはできません
- 難読化は暗号化に似ていますが、理解するために「秘密」を必要としません (ROT13 はその一例です)。
- 暗号化は元に戻すことができますが、そのためには「秘密」が必要です
.net - .net で計算された MD5 ハッシュが Web サイトで計算されたハッシュと等しくないのはなぜですか?
JavaScript と .Net の両方で同等の MD5 ハッシュを生成しようとしています。どちらも行っていないので、私は第三者の計算に対して使用することにしました - このWeb サイトの「パスワード」という単語。後でソルトを追加しますが、現時点では、.net バージョンを Web サイトのハッシュと一致させることができません。
エンコーディングの問題だと思いますが、.Net で MD5 ハッシュを計算する方法を 8 種類ほど試しましたが、JavaScript で (または Web サイトから) 取得したものと一致するものはありませんでした。このMSDNの例は、私が試した方法の1つであり、一般的に受け取ったこのハッシュになります。
編集: 悲しいことに、2 つの異なる実装に異なるソース文字列を誤って提供してしまいました。EBSAK。:-/ 引き続きフォローアップへの回答をお待ちしております。
おまけの質問: ハッシュ値をデータベースに保存するには、どのエンコーディング/フォーマットが最適ですか?
perl - Perl ハッシュ テーブルに複数の値を格納するにはどうすればよいですか?
最近まで、次のように、同じキーを使用して複数の値を異なるハッシュに格納していました。
そして、参照できますが$boss("Bob")
、$status("Bob")
各キーが持つことができるプロパティが多数あり、ハッシュの同期を維持することを心配する必要がある場合、これは扱いにくくなります。
複数の値をハッシュに格納するためのより良い方法はありますか? 値を次のように保存できます
その後、スプリットで文字列を分解しますが、もっとエレガントな方法があるはずです。
javascript - JavaScriptにハッシュコード関数はありますか?
基本的に、私はユニークなオブジェクトのオブジェクト、セットを作成しようとしています。プロパティ名のオブジェクトでJavaScriptオブジェクトを使用するという素晴らしいアイデアがありました。そのような、
これは、ある程度までは機能します。文字列と数値でうまく機能しますが、他のオブジェクトでは、それらはすべて同じ値に「ハッシュ」され、同じプロパティにアクセスするように見えます。オブジェクトの一意のハッシュ値を生成する方法はありますか?文字列と数値はどのように機能しますか?同じ動作をオーバーライドできますか?
windows - 非 SSL ベースの署名と暗号化のためのハードウェア アクセラレーション
私は、大量のハッシュ、署名、および非対称暗号化と対称暗号化の両方を行うプロジェクトに取り組んでいます。これらの手順はパフォーマンスと利用可能な負荷に大きな影響を与えるため、作業をオフロードするためのハードウェア ベースのソリューションがあるかどうか疑問に思っていました。
調べてみたところ、SSL ベースの通信専用のアイテムしか見つかりませんでした。どこで発生しても署名と暗号化を高速化できる、より一般的なソリューションが必要です。
これらの SSL ベースのソリューションを適応させることは可能ですか (おそらくそれは単なるマーケティングであり、他の場所で簡単に再利用できるでしょう)? 役立つ優れた汎用コプロセッサはありますか?
これは Windows Server 2008 ベースのボックスで必要ですが、任意のプラットフォームでのソリューションに興味があります。
hash - ハッシュと数値ID
定期的なエンティティ(YouTubeのビデオ、または私のようなサイトの本のセクション)の一意の識別子の表示を何らかの方法で表示するWebアプリケーションを作成する場合、ハッシュや一意のような均一な長さの識別子を使用する方がよいでしょうかデータベース内のアイテムのキー(1、2、3など)。
少しだけ明らかにするだけでなく、アプリの内部に関する情報は重要ではないと思いますが、ハッシュを使用する方が、一意のIDを使用するよりも優れているのはなぜですか?
要するに:公開されている一意の識別子として使用するのに適しているのは、ハッシュ値とデータベースの一意のキーのどちらですか?
編集:Dmitriyが名前をdb固有のプロパティに結び付けないという良い点を提起したので、私はこの質問を再び開きます。この種のタイダウンにより、将来データベースを最適化/正規化できなくなりますか?
プラットフォームは、ISAM /wMySQLでphp/pythonを使用します。