問題タブ [password-encryption]
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.
security - ダブルハッシュセキュリティ
私の最初の質問は、文字列を2回ハッシュすることを聞いたことがあります(たとえば、sha1(sha1(password)))。2番目のハッシュは固定長であるため、本当ですか?
私の2番目の質問は、どちらが安全ですか?(var1とvar2は2つの文字列です):
- sha1(var1 + sha1(var2))
- sha1(var1 + var2)
それが最初のものである場合、それはパフォーマンスコストの価値がありますか?
php - ベスト プラクティス: パスワードをテーブルに格納する最も安全な方法は?
私はPHPを使用しています。以前は、ネイティブの mysql 関数 password() を使用してパスワードを保存していました。password() はもう安全ではないと言われました。パスワードをPHPに保存する最良の方法は何ですか? MD5ですか?
security - 後でプレーンテキストを取得するために、ユーザーパスワードの保存に倫理的にどのように取り組むべきですか?
私はますます多くの Web サイトや Web アプリケーションを構築し続けているため、ユーザーに問題が発生した場合にパスワードを取得できるように、ユーザーのパスワードを保存するように求められることがよくあります (忘れたパスワードのリンクを電子メールで送信するか、電話など) 私はできる限りこの慣習に激しく反対し、実際のパスワードを保存せずにパスワードのリセットと管理支援を可能にするために多くの「余分な」プログラミングを行います。
戦うことができない (または勝てない) 場合は、常に何らかの方法でパスワードをエンコードして、少なくともデータベースにプレーンテキストとして保存されないようにします。犯人がパスワードを解読するのにそれほど時間はかからないので、私は不快です。
完璧な世界では、人々はパスワードを頻繁に更新し、多くの異なるサイトでパスワードを複製しないでしょう。残念ながら、同じ職場/自宅/電子メール/銀行のパスワードを持っている多くの人々を知っています。私のDBセキュリティ手順が何らかの理由で失敗した場合、私は彼らの経済的終焉の責任者になりたくありません.
道徳的および倫理的に、一部のユーザーにとっては、たとえ彼らがそれをあまり尊重していなくても、彼らの生活を保護する責任があると感じています. ハッシュのソルト化やさまざまなエンコーディング オプションについては、多くのアプローチ方法と議論が必要だと確信していますが、それらを保存する必要がある場合の「ベスト プラクティス」は 1 つありますか? ほとんどの場合、PHP と MySQL を使用していますが、それによって詳細を処理する方法に違いが生じる場合があります。
バウンティに関する追加情報
これはあなたがしなければならないことではなく、ほとんどの場合、そうすることを拒否するのが最善であることを私は知っていることを明確にしたいと思います. ただし、このアプローチを採用するメリットについての講義を求めているわけではありません。このアプローチを採用した場合に取るべき最善の手順を探しています。
以下のメモで、主に高齢者、精神障害者、または非常に若い人を対象とした Web サイトは、安全なパスワード回復ルーチンを実行するように求められると、人々を混乱させる可能性があることを指摘しました. そのような場合、単純でありふれたものだと思うかもしれませんが、一部のユーザーは、サービス技術者にシステムへのヘルプを依頼するか、直接電子メールで送信/表示するという追加の支援が必要です.
このようなシステムでは、ユーザーにこのレベルのアクセス支援が提供されていないと、これらの人口統計による減少率がアプリケーションの障害になる可能性があるため、そのような設定を念頭に置いて回答してください。
みんなありがとう
これは多くの議論を伴う楽しい質問であり、私は楽しんでいます. 最後に、パスワードのセキュリティを保持する (プレーン テキストや回復可能なパスワードを保持する必要がない) だけでなく、指定したユーザー ベースがシステムにログインすることを可能にする回答を選択しました。通常のパスワード回復。
いつものように、さまざまな理由で正しいとマークしたい回答が約 5 つありましたが、最良の回答を選択する必要があり、残りはすべて +1 でした。みんな、ありがとう!
また、この質問に投票したり、お気に入りとしてマークしたりした Stack コミュニティの皆さんにも感謝します。私は賛辞として100票を獲得し、この議論が私と同じ懸念を持つ他の誰かを助けることを願っています.
c# - C# HMAC の実装
アプリケーションでユーザー パスワードを暗号化する必要があり、一度にパスワードを復号化して、認証のためにサーバーに送信します。友人が HMAC を使うようにアドバイスしてくれました。C# で次のコードを書きました。
パスワード (この場合、resultSTR) をデコードする方法は?
php - 解読可能なパスワードを安全に保存する方法
PHP でアプリケーションを作成していますが、将来ユーザー データベースを別のシステムに切り替える際の問題を回避するために、パスワードを復号化できる必要があります。この将来のシステムのパスワード方式を変更することは不可能であり、パスワードを生成するには平文のパスワードが必要であると考えてください。
サーバーに保存されている公開鍵を使用して、ユーザーのパスワードを暗号化する計画です。認証は、入力を暗号化し、結果を比較することによって行われます。復号化は行われません。復号化可能な秘密鍵は、後で使用するためにオフサイトに保存されます。
どの暗号化/復号化アルゴリズムを提案しますか? 攻撃者が秘密鍵を利用できないと考える場合、暗号化されたパスワードはハッシュ (MD5/SHA1) と同じくらい安全ですか?
java - spring xml ファイルでデータソースのパスワードを非表示にする
xml spring config ファイルでパスワードを非表示/暗号化する方法はありますか? DataSource の「カスタム」サブクラスでそれが可能であると読みましたが、ソリューションはプレーンテキストと同じ構成ファイルにキーを保持しているため、少し役に立ちません。
これに KeyStore を使用する方法はありますか? たとえば、キーストアから値を読み取ります。
皆さんありがとう。
vb.net - VB.NET: パスワードの暗号化
暗号化されたパスワードを使用するように VB.NET サイトをアップグレードする最も簡単な方法は何ですか? System.UI に組み込まれている使いやすい暗号化アルゴリズムはありますか?
私のサイトはプレーン テキストのパスワード ストレージを使用しており、ローカル ネットワークのプライベート サーバーから godaddy のパブリック サーバーに移行する予定です。すべてのパスワード解析機能に暗号化アルゴリズムを追加し始める必要があります。web.config ファイルと Encrypt(password) などに SALT キーを設定できればいいのですが。
encryption - ソルトとハッシュ、ユーザー名を使用してみませんか?
Webアプリケーションに関連するハイテクセキュリティの問題のほとんどについてほとんど無知であることを告白しなければなりませんが、それは(願わくば)具体的な答えを伴う直接的な質問であるため、少なくとも私が尋ねることができると思ったことが1つあります。
このウェブサイトをご覧ください:http ://www.15seconds.com/issue/000217.htm
それは彼らが塩の値を表に保存していることを少し下に示しています、私は塩を使用することの背後にある原理と数学を理解しています、しかし私はこれを疑問に思っています:
なぜ彼らはユーザー名を生成する代わりにソルト値として使用しなかったのですか?
asp.net - Web.config の暗号化とインストール
私は暗号化プロセスに不慣れで、暗号化された web.config ファイルをホスティング会社のサーバーにインストールしようとして失敗しました。Microsoft Visual Web Developer 2010 Express を使用しています。
「チュートリアル: Protected を使用した構成情報の暗号化」にある手順を数回実行しました。
ウォークスルーに関して注意してください。web.config ファイルに machineKeys がないため、その暗号化手順をスキップしました。
aspnet_regiis -pef connectionStrings "c:\Users......\mywebsite.com"を実行すると、次の
ように返されます: Encrypting configuration section ... 成功しました!
2) 次に、web.config ファイルを FTP で送信すると、サイトに次のエラーが表示されます: 注: 行 8 が強調表示されています)
「/」アプリケーションでサーバー エラーが発生しました。
構成エラーの説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下の特定のエラーの詳細を確認し、構成ファイルを適切に変更してください。
パーサー エラー メッセージ: プロバイダー 'RsaProtectedConfigurationProvider' を使用して復号化できませんでした。プロバイダーからのエラー メッセージ: データが正しくありません。
ソース エラー:
6行目: 7行目: 8行目: 10行目:
ソース ファイル: C:\HostingSpaces*username**mywebsite.com*\wwwroot\web.config 行: 8
バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.1
欠落している部分があるに違いないことはわかっていますが、検索しても何も見つかりませんでした。Web サイトの暗号化に関して何かする必要があるかどうかを確認するために、ホスティング会社にメールを送信しましたが、まだ応答がありません。
私が期待するのは、暗号化された値を受け取り、アルゴリズムを使用してそれを復号化するキーが別の場所に存在することです。もしそうなら、どこでその鍵を手に入れ、どこに行くのでしょうか。
どんな助けでも大歓迎です.Web上でこれに似た問題を見つけることができないことに少し驚いています.
どうもありがとう。