問題タブ [sha]
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.
mysql - ユーザー コンテンツ Web サイトの mysql でのパスワード ストレージ
ユーザーのパスワードを保存するには、SHA 256 + ソルティングを使用します。これらが正しいかどうかを確認したかっただけです。ビジネス要件として、パスワードは最小 8 入力、最大 32 入力である必要があります。(空白以外は任意の入力が有効です)
したがって、これらの要件を満たすための計画は次のとおりです。
フロントエンド - 32 の最大入力と 8 の最小入力を検証します。
バックエンド データベース (MySQL) スキーマは次のようになります:
pass_hash(64) CHAR - パスワード ハッシュを保存します
pass_slt(32) VARCHAR - 各ユーザーの一意のソルトを保存します
塩漬けについては、まだどの値を使用すればよいかわかりません。しかし、ユーザーがアカウントを作成するときに、ユーザーごとにランダムなキャラクターを作成して使用すると思います。次に、他の質問は次のとおりです。ソルトをプレーンテキストとして保存しますか、それともハッシュ/暗号化する必要がありますか?
また、それが問題かどうかはわかりませんが、この現在のプランでパスワードが多言語をサポートできるか、それとも何か問題が発生しますか? (アラビア語、中国語などのファンキーな文字について話している)
algorithm - 単一の「1」ビットの SHA-256 ハッシュは何ですか?
SHA-256 の定義は、単一の「1」ビットで構成される入力が、「01」バイトのハッシュ値とは異なる、明確に定義されたハッシュ値を持つように見えます(入力のビット長に基づいてパディングが行われるため)。 )。
ただし、エンディアンの問題と、単一ビットでのフィードをサポートしている実装が見つからないという事実により、この正しい値が何であるかを完全に理解することはできません。
では、ビット「1」で構成される1 ビット長の入力の正しいハッシュは何ですか? (8 ビット長の byte[] { 1 } 入力ではありません)。
python - 同じファイルの異なるshaを交互に。なぜ?
同じファイルの代替ファイルを取得する理由を誰かに教えてもらえますか?しかし、毎秒同じですか?
ruby-on-rails - shaの代わりにbcryptを使用するようにdeviseとrails3を変更する
認証を処理するためにdeviseを使用するRails3プロダクションアプリがあります。アプリでshaの代わりにbcryptを使用するように変更したいのですが、一方から他方への移行プロセスを説明するリソースが見つかりません。現時点でパスワードが特定の方法で変更されているという事実を処理するには、何らかのフォールバックを設定する必要があると思います...
誰かが前にこれをしましたか?!ヒント、チュートリアル、ウォークスルーなどはありますか?!
c - 「ベースの」データ チェックサムの計算。(SHA1/2など)
これをどのように尋ねるか正確にはわかりませんが、キーを含むことができる構造を考えると、これが私が望んでいることです5+n
(したがって、私のシステムには 5 つのキーが必須であり、追加のキーはオプションです) - ハッシュを希望します同一のキー6
を持つキーハッシュがキー構造体5
のスーパーセットであり、5
追加情報を提供することを決定できるメカニズム。具体的には、すべてのリクエストで完全な構造体をネットワーク経由で送信することを妨げる制約があるため、ハッシュメカニズム。
明確にするために、いくつかの情報を次に示します (サンプルには2+n
キーが必要です)。
でハッシュするとSHA-512
、-256
次のようになります。
追加のキーを追加する場合 (以下の例)、拡張されたデータセットが最初のデータセットのスーパーセットであると推測できるようにしたいと考えています。
ただし、当然のことながら、MD5
、SHA-n
および私が調べた他のハッシュ関数では、これを行う方法はありません。例:
(明らかに)類似点はありません...
私たちのユースケースである構造体としてフォーマットされたこのデータは、サードパーティによってシステムに供給されます。データの処理には非常にコストがかかり、操作ごとに 2 ~ 3 秒かかります。以前の実行の結果があることがわかっている場合、その時間の約 50% を取り戻すことができます。頭字語であるキーと値のペアや、まったく関連性がないにもかかわらず、類似しているように見える他のテキストをよく目にするため、ここに適しています。
必要なのは、データをチェックサムする方法です (ここで私の回答にバイアスがかかっている可能性があります)。これにより、同じデータを持つすべての同じキーが含まれているかどうかB
のスーパーセットであると判断できます。A
しかし、多くの場合、私たちのキー/値エントリには非常に多くのデータがありstruc
、より完全なコピーを既に見たと判断するためだけに毎回ネットワーク経由で送信すると、費用がかかり、無駄になります。
hash - SHA256 / 512ハッシュを生成する場合、ハッシュするデータの最小の「安全な」量はありますか?
ハッシュを作成するときに、小さなファイルや大量のデータを使用すると、結果のハッシュが衝突する可能性が高くなる可能性があると聞いています。それが本当なら、これが起こらないようにするために使用されるべき最小の「安全な」データ量はありますか?
質問は次のように表現することもできると思います。
安全かつ確実にハッシュできる最小量のデータはどれくらいですか?
sha - 大きな整数から可逆的に疑似自然句を生成する
大きくて「一意の」整数(実際にはSHA1ハッシュ)があります。
注:ここでSHA1ハッシュについて話している間、これは暗号化/セキュリティの質問ではありません!私はSHA1を壊そうとはしていません。それが役立つ場合は、SHA1の代わりにランダムな160ビット整数を想像してみてください。
私は(楽しむ以外の理由はありませんが)そのSHA1ハッシュをコンピューターで生成された(疑似)英語のフレーズにマップするアルゴリズムを見つけたいと思っています。マッピングは双方向である必要があります(つまり、アルゴリズムを知っていると、そのフレーズから元のSHA1ハッシュを計算できる必要があります)。
フレーズは意味をなす必要はありません。私はナンセンスの段落全体でさえ解決するでしょう。(ただし、段落の品質(英語性)は、単なるフレーズよりも優れているはずです。)
より良いアルゴリズムは、より短く、より自然に見える、よりユニークなフレーズを生成します。
バリエーション:ハッシュの一部しか扱えなくても大丈夫です。たとえば、最初の6桁の16進数で問題ありません。
生成されたフレーズの可能な使用法:GitコミットIDの人間が読めるバージョン。そのコミットから構築された、特定のプログラムバージョンのモットーとして使用します。(私が言ったように、これは「楽しみのため」です。これが非常に実用的であるとは言いません。または、SHA1自体よりもはるかに読みやすくなっています。)
考えられるアプローチ:過去に、SHAから読み取ったビットに従って、(単語の)確率テーブルを作成し、マルコフ連鎖としてフレーズを生成し、ジェネレーターをシード(確率ツリーからブランチを選択)しようとしました。これはあまり成功しませんでした、結果として生じるフレーズは長すぎて醜いものでした。これがバグなのか、アルゴリズムの一般的な欠陥なのかはわかりません。十分に早く放棄しなければならなかったからです。
今、もう一度問題を解決しようと考えています。これにアプローチする方法について何かアドバイスはありますか?マルコフ連鎖アプローチがここで機能すると思いますか?他に何かありますか?
ruby-on-rails - Digest :: SHA2.hexdigest()はどこで定義されていますか?
「アジャイルWeb開発とレール」という本のチュートリアルをたどっていますが、次のコードが見つかりました。
Digest
ソースコード(digest.rb
およびrubyインストールdigest/sha2.rb
のディレクトリ内)を調べると、メソッドが定義されlib
ている場所が見つからないようですが、コードは正常に機能しているようです。hexdigest
誰かがこれがどのように起こるかを私に教えてもらえますか?どういうわけか次のようなコードを探す必要があると思います。
security - オープンに残されたハッシュはどれくらい安全であると見なすことができますか?
SHA2ファミリーのハッシュを自分のWebサイトに残しておくとしたら、どれくらい安全だと見なされますか?誰かが衝突を見つけて何がハッシュされたかを知ることができるようになるまで、どれくらいの時間がかかりますか?
時間の長さは、それを破ろうとしている人の計算能力に基づいていることを私は知っています。文字列の長さにもよりますが、ハッシュがどれだけ安全か知りたいです。
私たちの多くはWebサーバーを実行しているため、ユーザーのハッシュを格納するデータベースに誰かがたどり着く可能性がある日のために常に準備する必要があります。では、サーバーのセキュリティを邪魔にならないように移動してから、何を持っていますか?
これは私が話をした多くの人々にとって少し理論的な領域なので、実際にクラッキングの平均的な期待についてもう少し情報が欲しいです。
hash - 反復手法とは何ですか?
コーディング理論のコースで、圧縮ハッシュ関数と選択した反復手法を実装するように依頼されました。
「反復手法」とはどういう意味ですか?
ハッシュ関数にはSHA-1を選択しました。
PS申し訳ありませんが、私は英語を母国語としないので、このようなあいまいな質問をしています。