ipv4とipv6のアドレスを使用して固有の値を生成する必要があります。つまり、192.37.4.60を入力した場合です。一意のキーを生成し、192.60.4.37と入力すると別のキーを生成する必要があります。どのように私はこれを行うことができます誰も私を助けて、私はまた、入力ごとに一意の値を生成する方法もipv6アドレスを入力することができます。任意のアルゴリズムまたは任意の現在のアルゴリズムを推薦することができます一意のKEY生成のアルゴリズム
答えて
出力IPアドレスを入力してください:voilà、requirements met!
(私の解決策は、あなたのために動作しない場合、それはあなたがあなたの質問に詳細を追加する必要があることを意味)
もし私がipv6アドレスを入力した場合、私はそれが範囲外になるので、それをやります。そのような大きな数字も欲しくはありません。 –
@hopelessコーダー:可能なIPv6アドレスのユニークなキーが必要な場合は、鍵は128ビットの番号であり、これは単純にいくつの固有のIPv6アドレスがあるかということである。あるいは、新しいIPアドレスが表示されているときにキーを順番に割り当てることで、IPアドレスへのキーのテーブルを作成することもできます。 – caf
@hopelessコーダー:あなたは*あなたの質問に数字*を望んでいないと指定していません。あなたが何をしたいのかを説明しなければ、助けが不可能です。 –
IPはかなりユニークです:)特にIPv6のアドレス。 また、ハッシュアルゴリズム(例:MD5、SHA1など)を使用して「キー」を作成することもできます。入力データがユニークである限り、ユニークになります:)
私はMD5 algoを試しましたが、o/pは128ビットです。このようなことをしました[root @ INFBA01415〜]#vi simple.txt [root @ INFBA01415〜]#md5sum simple.txt d41d8cd98f00b204e9800998ecf8427e simple.txtこのデータを印刷すると、エラーが出力されます –
まあ、おそらく*ユニークです:) –
@static_rtti:免責事項を追加してうれしいです。 @BasicWolf:128ビットから160ビット幅の暗号化ハッシュを使用するかどうかは関係ありません(それぞれMD5とSHA1の場合のように)32ビットのIPv4アドレスをハッシュし、それほど賢明な128ビットのIPv6アドレスではありません。 (アドレスを単に使用するのと比較して)かなりの処理ペナルティのために、一意性の度合いに相当な利得がある場合はおそらくほとんどありません。 – Mac
問題のニーズに応じていくつかの解決策があります。
- あなたは身を取り上げますが、IPアドレスを詐称することができることを心に留めておくIPを使用することができます。あなたは、通信チャネルを確保するために複数のピアの中で、このキーを使用する場合
- 、その後、あなたはだけいくつかの静的なためにそれらを使用したい場合はsymmetric-keyまたはpublic-keyアルゴリズム
- に対するご覧になる場合がありますデータはMD5、AES、SHA *のいずれかを使用できます。
アルゴリズムに複数のソースを使用したい場合があります。
:MACアドレスとの組み合わせで、使用することを検討してください、あなたは機械/クライアントから入手することができ、他の材料に関連した情報は、どのアプリケーションがその数値(10進数)表現にIP変換
私はMD5 algoを試しましたが、o/pは128ビットです。このようなことをしました[root @ INFBA01415〜]#vi simple.txt [root @ INFBA01415〜]#md5sum simple.txt d41d8cd98f00b204e9800998ecf8427e simple.txtこのデータを印刷するだけでエラーになります –
エラーは何ですか? – ALOToverflow
私は上記のヘキサ値をdecimla相当のantに変換しました。#includeを出力しようとしました
を実行します10.0.0.1 - > 00001010 00000000 00000000 00000001 - > 167772161
これは、内部でたくさんのIPアドレスが格納される方法です。 32ビットの記憶容量しか必要としないのでいいです。これもIPv6でも可能ですが、uint32よりも大きなものが必要になります。
ipv6アドレスを持っている場合の対処方法 –
@hopeless:[この記事を参照](http://msdn.microsoft.com/en-us/library/aa921042.aspx) )。同じロジックが適用されますが、IPv6には数字の欠落があります(先行ゼロを削除できるため)。これを考慮する必要があります。 –
であり、IPv6アドレスをバイナリ(記事ごと)に変換すると、その128ビットの番号は他の番号と同様に使用できます。必要に応じてキーとして使用できます。 –
1つの可能な解決法は、左シフト演算子を使用して加算することです。次のコードは、あなたのユニークな値
int a=1;
int b=2;
int c=3;
int d=4;
int value =(a<<24)+(b<<16)+(c<<8)+d;
独自の暗号アルゴリズムを発明するのは良い考えではありません。 – ALOToverflow
@フランシス:これはドット付き10進数のIPv4アドレスがどのように表現されているかを示しています。これは、アドレス "1.2.3.4"を32ビットで格納しています。しかし、署名されたintを使用しているため、小さなバグがあります。また、a、b、c、dは潜在的に255よりも大きくなり、問題を引き起こす可能性があります。 –
クリスがバグを指摘してくれたことに感謝します – MARK
を与えるだろう、その後、B、C場合やオクテットを表すdは例えば、あなたはキーのいずれかに必要な特性を述べていないあなたは一意である必要があることをexcet、それほど明白解決策は、標準化されたIPアドレスをキーとして使用することです。アドレスを数字に変換する方法は明らかですが、IPv6アドレスが膨大な数になることを警告する必要があります。したがって、使用する言語に関係なくBigIntの実装が必要です。
(あなたはが実際にすべての340個のundecillionアドレスが一意のキーを持っている必要があることを意味しなかった場合は、もちろん、あなたが代わりに通常のハッシュ関数をご覧ください。)
別のオプションを直接inet_ptonを使用することができ。
- 1. 最小長の一意のユニコード文字を生成するアルゴリズム
- 2. システム間で一意の数を生成するためのアルゴリズム
- 3. React:一意のIDの生成
- 4. 雲で一意のIDを生成
- 5. 一意の順次IDを生成
- 6. C++一意のIDを生成する
- 7. iosで一意の文字を生成
- 8. 一意のオブジェクトIDを生成
- 9. 一意の生成変数Python
- 10. bash:意味のある一意のIDの生成
- 11. ギャラクシー生成アルゴリズム
- 12. firefoxキャッシュハッシュキー生成アルゴリズムのバグ
- 13. 異なる要素のReact Keyの一意性
- 14. 生成ベルズ数アルゴリズム
- 15. 数独生成アルゴリズム
- 16. 意思決定アルゴリズムのアルゴリズム名 "c4.5"の意味は?
- 17. ボタンを生成するためのhtmlの一意のID
- 18. 一意の行、列のランダムなリストを生成するjavascript
- 19. 一意のIDのGAEデータストアを生成する
- 20. sugarcrmのモジュールで一意のIDフィールドを生成する方法
- 21. Spring MVCでの自動一意ID番号の生成方法
- 22. 銀行取引の一意のキーを生成
- 23. Express Webアプリケーション用のNode.jsで一意のIDを生成
- 24. フォールトトレランスで複数の値から一意のIDを生成
- 25. Webブラウザの一意のIDを生成する方法は?
- 26. 一意のデータから複数行のデータを生成する
- 27. ログのためにブラウザで一意のシーケンス番号を生成
- 28. oracleで6桁の一意の乱数ジェネレータシーケンスを生成
- 29. * ngForで開いたモーダルの一意の変数名を生成
- 30. Tkトップレベルウィンドウパスの一意の名前を生成する方法は?
なぜ鍵にIPアドレス自体を使用しないのですか? –
キーはどのように使用されますか。アルゴリズムの選択に影響する可能性があるためです。 – ALOToverflow