問題タブ [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.
c# - 「MicrosoftAccessデータベース」を暗号化していますか?.accdbファイルがハッキングされる可能性があります
VisualStudio2010とMicrosoftAccess2010を使用して、C#プログラミング言語を使用したデスクトップアプリケーションを開発しています。
接続文字列は次のとおりです。
connectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = | DataDirectory | \ KBank.accdb; Persist Security Info = False"
そして私はそれに次のようにC#コードでパスワードを与えます:
プロジェクト内のデータベースを1つの単純な「選択」クエリで使用しました。
それで、セキュリティの問題に関して..誰かがアクセスデータベースを復号化するか、パスワードを見ることができますか?そして、誰もがデータベースデータを見るのを難しくするためのあなたの提案は何ですか
passwords - Bcrypt、作業要素を維持 : 長期間ログインしていないユーザーはどうなりますか?
bcrypt でハッシュ化されたパスワードの作業要素を維持する方法を理解しようとしていました。
私はそこに解決策を見つけました: Optimal bcrypt factor、これは基本的に、ユーザーのログイン時に再ハッシュできることを示しています。
しかし、長時間ログインしないユーザーの問題をどのように解決するのかわかりません。この場合、唯一の解決策は、セキュリティ上の理由からアカウントが無効になることを知らせる電子メールを送信することだと思いますか?
node.js - Node.jsとパスワードのセキュリティ:3つの質問
私はこれまでユーザー認証システムを作成したことがなく、このプロジェクトではセキュリティと効率のバランスをとる必要があります(つまり、セキュリティの終わりに何百人もの工数を費やすことはできませんが、パスワードとログイン情報を保持する必要があります安全)。
認証とセッションにExpressフレームワークとパスポートでNode.jsを使用しています。
私がこれまでに行った調査では、解決すべき3つの問題が示されています。今日まで、私はこれらの問題に共通の解決策が存在するかどうかを文字通り知りませんでした。数時間ランダムに調査を調べても、見つけた答えの完全性に自信が持てませんでした。
問題点:
暗号化されていないプレーンテキストのパスワードをデータベースに保存しないでください(考えられる答え:サーバー上でパスワードをソルト/ハッシュし、データベースにハッシュを保存します)。
安全でないhttp接続を介してプレーンテキストのパスワードを渡さないでください(考えられる答え:A--認証プロセスにのみHttpsを使用します。その後httpを使用します。B--ログインページでユーザーにランダムなソルトを送信し、ハッシュします。パスワードクライアント側で、データベースストレージのハッシュを解除して再暗号化します。)
GPUが毎秒700,000,000のパスワードで解読できるような弱い暗号化方式を使用しないでください。(考えられる答え:bcrypt)
これらは、3時間の調査で私が見つけた最も賢明な答えです。これらが十分であるかどうか、それらの弱点は何か、またはどのような代替手段が利用できるかはわかりません。さらに洞察をいただければ幸いです(注:わかりません。httpsはパスワードが送信されるときにパスワードを十分に保護していますか?)
python - Python でのパスワード送信
Google アプリ エンジンを使用して Web サイトを開発していますが、送信を処理する適切な方法を知りたいです。
クライアント側のパスワードをソルトでハッシュし、サーバー側で他のソルトで再度ハッシュするようなことを考えていました。
これが少なくともまともなセキュリティであるかどうか、そしてそれを行うPythonライブラリがすでに存在するかどうか、またはそれ以上のことを知りたいです。
php - パスワードストレージ、sha-512を使用したhash()またはblowfish(bcrypt)を使用したcrypt()?
これは、PHP/SQLプロジェクトでの現在のパスワードハッシュ手順です...
- 最終的なハッシュに加えて、ユーザーのDBレコードに保存されている/ dev/urandomからユーザーごとに512ビットのソルトを取得します
- ファイルシステムに保存されている/dev/urandomから512ビットの「pepper」を取得します。これはアプリケーションごとに一定であり、各ユーザーで同じです
- それで
hash('sha512', $password.$salt.$pepper, TRUE)
ハッシュとソルトは、主に習慣から、DBにバイナリで格納されます。セキュリティの面では何の違いもないと思います。どちらかといえば、SQLバックアップには少し不便であり、PHPコードがわずかに複雑に見えるようになります。
最近、SHA-256またはSHA-512はhash()
、bcryptに取って代わられたと一般的に考えられていますか?
SHA-2(256/512)はまだ暗号的に安全であると考えられており、おそらくエントロピービットをやり過ぎていると思います。攻撃者がDBダンプからSHA-2ハッシュをリバースエンジニアリングするよりも、問題を引き起こす可能性がはるかに高いのは、私のコードの欠陥です。
しかし、crypt()
代わりにCRYPT_BLOWFISHで使用するために方法論を更新する必要があります(これはbcryptと呼ばれ、blowfishは技術的にはハッシュアルゴリズムではなく暗号です)?
将来のベストプラクティスと同じように?
アルゴリズムの計算コストについては特に心配していません(理由の範囲内で)。これは、アカウントを作成するとき、パスワードを変更するとき、またはログイン時にハッシュして比較するときにのみ要因になります。これらのアクティビティは、ページビューのわずかな割合を占めています。ある意味、遅いほど良いと思います。サーバーの生成が難しくなると、攻撃者のブルートフォース攻撃が遅くなります。
乾杯、B
java - Java Encrypter のキー処理
私のJavaベースのWebアプリでは、DBに書き込まれる前にデータを暗号化し、メモリにロードされたら復号化したいと考えています。そのために、bouncycastle API を使用して、次のようなクラスを作成しました。
ここまではとても良いです (私はそう思います。このクラスについて何かコメントがあればどうぞ)。このクラスを初期化するには、キーを提供する必要があります。私の質問は、このキーをどのように管理すればよいですか?
もう少し詳しく言うと:
- 特定の技法を使用して作成する必要がありますか?
- どこに保管すればよいですか?プロパティファイルで?DBで?私のコードのどこかに?
- このキー (ここでは文字列について話していますよね?) を暗号化し、ロードまたは使用後に復号化する必要がありますか? もしそうなら、どうすればいいですか?
ruby-on-rails - ユーザーモデルのCRUDインターフェースを作成するレールデバイス
いくつかのコントローラーコードとフォームを使用して、管理名前空間に CRUD インターフェイスを作成したユーザーモデルがあります。ユーザー モデルには、最初はユーザー名の電子メール パスワード フィールドがあります。
次に、同じユーザー モデルで動作するようにデバイスをセットアップします。問題は、devise がパスワードを暗号化し、encrypted_password フィールドに入れることです。そのため、私が作成したパスワードと CRUD インターフェイスは今では役に立ちません。管理者にユーザーテーブルで CRUD 機能を持たせたいと同時に、それを操作するように工夫したいと考えています。
考えられる解決策は次のとおりです。1) デバイス コントローラのメソッドを呼び出して、コントローラ内で暗号化されたパスワードを処理するユーザーを追加します。それが可能かどうかはわかりません。
2) 自分でパスワードを暗号化し、デバイスと同じフィールドに保存します。いくつかの投稿を見つけましたが、どれも機能しませんでした。カスタム暗号化方式を追加しようとしましたが、うまくいきませんでした。
誰でもこれで私を助けてくれますか?
php - MySQL DB パスワードを保護する方法は安全ですか?
使用時:
パスワード部分を別の場所に保存する利点について読みました ( https://stackoverflow.com/a/3354457/1704651 )。
私は PHP にかなり慣れていないので、MySQL パスワードを保存する方法が安全かどうかを知りたいです。
- ステップ 1、長い MySQL データベース パスワードを選択します ( https://www.random.org/passwords/?num=1&len=24&format=html&rnd=new )
ステップ 2、これを /outsidewebroot/salt.php に入れます (私の実際のソルトはもっと長いです)
/li>ステップ 3: 一時 PHP ファイル (使用後に削除されます) を使用してパスワードをエンコードします。
/li>ステップ 4、このコードを .htaccess に入れます
/li>ステップ 5、データベースに接続する必要がある場所に次のコードを配置します。
/li>
/outsidewebroot/salt.php のソルトは、データベースでパスワードのハッシュに使用するものと同じなので、2 回使用するために一度だけ含める必要があります。
ここで見た暗号化/復号化方法: http://ideone.com/yQIAX
この方法も見ました: https://stackoverflow.com/a/3354457/1704651暗号化/復号化方法の代わりにハッシュを使用します。
私の方法についてご意見をお寄せいただきありがとうございます。
android - Array Out of bounds error
I am trying to encode my sharedPreferences username and password using Base64 but when running my program in eclipse emulator, I receive and error message saying "Array out of bounds". I’m not sure what this error means and how to correct it.
Logcat:
Here is my Registration activity which should take EditText string, encode, and save to sharedpreferences xml.
Corrections: