問題タブ [jasypt]

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.

0 投票する
2 に答える
1086 参照

hibernate - 暗号化されたテキストを読み込もうとしたときのJPA/HibernateでのOptimisticLockException

文字列をJPAで保存しながら暗号化し、読み取るときに復号化する必要があります。まず、プロパティが汎用であるため、休止状態の構成やその他の構成ファイルを使用することはできません。つまり、プロパティは次のようになります(簡単に言うと、ここですでにいくつかの処理を実装しています)。

(isEncrypted()メソッドを使用して暗号化する必要のあるプロパティを区別できます。これは、プロパティに応じてtrueまたはfalseに設定されます)。Out Encryptorクラス(簡略化)はJasyptで動作します。

暗号化/復号化は機能します。実際、永続性の処理全体が機能します。暗号化されたデータを保存できます。ただし、暗号化されたデータを読み取ると、次のようになります。

奇妙なことに、これはHibernatesが暗号化されたテキストを更新しようとした場合にのみ発生します。しかし、テキストを疑似暗号化および疑似復号化する場合、それは起こりません。つまり、テキストを反転し、反転したテキストをHibernateで保存し、Hibernateが更新しようとしたときに「復号化」します。したがって、処理全体は機能しますが、「実際の」暗号化を使用したときに機能しない理由は何でしょうか。何か案は?

(繰り返しになりますが、en-およびdecryption自体は機能します。これを確実にするために、異なるJUnitクラスで実行させます。)

0 投票する
2 に答える
389 参照

grails - 統合テスト中に Grails Jasypt プラグインの暗号化を無効にする方法は?

Grails プロジェクトの統合テスト中に、暗号化を無効にしたり、簡単なアルゴリズムを使用したりする方法はありますか? フィールド レベルの暗号化には、必ずしもテストする必要のないかなりのオーバーヘッドがあり、テストの実行にかかる時間が増えるだけです。

テスト段階でプラグインを除外すると、マッピングが必要になり、コンパイルが中断される可能性があるため、おそらく機能しません。

プレーンテキストまたはより単純なアルゴリズムが機能する可能性があると考えていますか、それとも構成で暗号化処理をすべて無視することさえ可能でしょうか?

目標は、テスト中のプラグインのパフォーマンスへの影響を減らすことです。

0 投票する
1 に答える
399 参照

security - 塩の場所、塩の隠蔽

次のシナリオについて質問があります
。パスワードを暗号化するためにjasyptを使用し、暗号化に特定のソルトを使用したい。

次の場合は意味がありますか(またはセキュリティへの影響がありますか):
パスワードベースの暗号化を使用して、環境変数から取得したパスワードでソルトを暗号化します。これにより、ソルトの暗号化された値をプロパティファイルに含めることができます。そこから取得し、環境変数から取得したパスワードを使用して復号化します(実際には、EnvironmentStringPBEConfigオブジェクトを取得し、EnvironmentStringPBEConfigオブジェクトから環境変数を取得し、EnvironmentStringPBEConfigが作成されたら環境変数を削除します)。塩。

ありがとうございました。

編集:上記のように塩を「隠す」ことが良い習慣であるかどうかを知りたいので、現在そのようなソリューションを実装していないことに注意してください。

編集: OWASPからの次の推奨事項にも注意してください。

推奨事項:塩全体を盗むのを難しくします

検討のために、基本的なソルティングメカニズムに推奨される追加の拡張機能がいくつかあります。

システム全体の固定値である追加の「システム」ソルトを用意します。これは、構成ファイルのどこかに保存する必要があります。この固定値をすべてのバックアップに含める必要はないため、攻撃者がハッシュ値を適切に計算するために必要なすべての要素を侵害することはさらに困難になります。システムソルトの一部をソースコードに埋め込む。これはオープンソースコードにはあまり役立ちませんが、カスタムアプリケーションの場合、システムソルトの一部をコードに含めることは、攻撃者がハッシュ値を適切に計算するために必要なもう1つの項目になります。ユーザーのパスワードが変更されるたびに、アカウントの新しいソルトを生成します。

推奨事項:塩の分離

追加のパスワードストレージ防御メカニズムには、パスワードハッシュとは異なる場所にソルトを保存することが含まれます。サーバーのファイルシステムの使用は、パスワードハッシュがデータベースやLDAPサーバーなどの別の場所に保存されていることを前提として、ソルト分離に一般的に使用されるメカニズムの1つです。この防御メカニズムにより、データベースファイルが盗まれた場合のパスワードの盗難のリスクが軽減されます。これは、ソルトがデータベースデータに含まれないためです。パスワードハッシュとソルトの両方が一緒にバックアップされないように注意してください。これらも別々にバックアップする必要があります。

0 投票する
2 に答える
4217 参照

java - Jasypt 使用時のパスワード ソルトの取得

Jasypt を使用して、ランダムなソルトを使用してユーザー パスワードを暗号化したいと考えています。Jasypt からランダムなスラットを取得することは可能ですか? どうすれば入手できますか?

ありがとう、フェラス

0 投票する
4 に答える
1574 参照

java - Java での文字列の暗号化の一定の結果

文字列 (ユーザーの電子メール) を暗号化し、常に同じ結果の文字列を取得したい ユーザーの電子メールをログイン ユーザー名として保存しています。そのフィールドで検索を行っているためです (たとえば、ユーザーの電子メールは登録時に既に存在します。または、ユーザーのパスワード e メール = 'abc' )

パスワードの暗号化と復号化には、仕事をする Jasypt を使用します。

文字列の暗号化、暗号化と復号化はできますが、復号化を一定にする方法が見つかりません。

私は解決策をたくさん探しましたが、私の問題に対処しているようには見えません。適切なキーワードを使用していない可能性があります。暗号化に慣れていません。

文字列の暗号化に Jasypt を使用する必要はありません。毎回"hello@hello.com" を "@ABC#EFG" に変換するものは何でも素晴らしいでしょう。

また、文字列の長さ、最初の文字などに応じて、さまざまなスクランブル アルゴリズムを使用して文字列のバイトをスクランブルしようとしました。残念ながら、暗号化された文字列を MySQL に保存すると機能しなくなります。私が理解していることから、MySQL が好まない Unicode 値を持つことになるすべてのバイトは正しく保存されません (テスト クラスに存在する文字列を使用すると正常に動作しますが、実際に暗号化された文字列を保存してから取得すると機能しません)。 DB )

アイデア - 解決策へのリンクはありますか?

事前にどうもありがとう、ダン

0 投票する
2 に答える
12646 参照

java - エラー org.jasypt.exceptions.EncryptionInitializationException: Password Based Encryptor にパスワードが設定されていません

暗号化に jasypt-1.9.0 を使用しています。

Jdbc.properties

あなたのサイトの1つから参照を得ました。複数のコンテキスト ファイルを使用しています。設定しました

アプリケーションにログインすると、エラーが発生します::

org.jasypt.exceptions.EncryptionInitializationException: パスワードベースの暗号化にパスワードが設定されていません

0 投票する
1 に答える
1440 参照

postgresql - Java Swing アプリと Postgres db 間のパスワード暗号化

Java Swing フロントエンドが postgres データベースにアクセスするシステムを構築しています。今週Jasyptを発見する前は、もともと Postgres 独自の暗号化メカニズムを使用する予定でした。それは問題なく機能しましたが、ネットワーク上のパスワードを暗号化する必要があったため、Jasypt に目を向けました。

問題は、Postgres ストアド関数に固定パスワードを入力する必要があることです。つまり、入力パスワードが 'aaa' の場合、Postgres ストアド関数 ('aaa' 以外) に入力された他のパスワードは一致しません。

これら 2 つの暗号化メカニズムを連携して動作させる方法はありますか、それとも Postgres をダンプする必要がありますか?

私のユーザーテーブル:

暗号化パスワード:

パスワードの復号化:

2 つを連携させることができない場合は、ネットワーク上で暗号化する必要があるため、Postgres のメカニズムをダンプする必要があります。

また、データベース接続文字列とデータベースのユーザー名とパスワード(フレームワークを使用していない...うまくいけばSSLを使用した単純な古いjdbc接続-まだ実装していない)に関しては、Jasyptを使用できるとは思わない.データベースレベルで復号化する必要があります。この場合、SSL だけで十分でしょうか?

ありがとう。

0 投票する
2 に答える
1014 参照

java - マクロマン vs UTF-8

ソースからバイト データを取り出して暗号化し、ファイル システムに保存しようとしています。

暗号化には、jasyptBasicTextEncryptorクラスを使用しています。ファイル システムへの保存には、Apache の Commons IOUtilsクラスを使用しています。

必要に応じて、これらのファイルは復号化され、ユーザーのブラウザに送信されます。このシステムは、デフォルトの文字セットがMacRomanであるローカル マシンで動作しますが、デフォルトの文字セットがUTF-8であるサーバーでは失敗します。

プロセスの各段階でエンコードを明示的に設定してMacRomanを使用すると、サーバーでも機能しますが、コードの残りの部分でUTF8を使用するため、これを行うことに懐疑的です。

MacRoman に変換せずにコードを動作させる方法はありますか?

0 投票する
1 に答える
621 参照

java - jaysptとhibernateを使用したデータのクエリ

こんにちは、私はHibernateを使用してユーザーモデルをデータベースに保存しています。jaysptをタンデムで使用して、ビジネスロジックからユーザー名とパスワードの暗号化を抽象化できることがよくわかりました。これが私が何を意味するかを説明するリンクです。これが休止状態のサイトからの別のリンクです。これで、データを問題なく保存できます。暗号化されています。私はそれを読むことができます、かっこいいです、しかし私が質問しようとすると物事は問題になります。何が起こっているのかもよくわかりません。私は最初に暗号化されていない文字列でクエリを実行してみました。nullポインタを取得しました。暗号化された文字列でクエリを実行しました。nullポインターを取得したので、何が起こっているのか少し戸惑っています。クエリは次のとおりです。

ここで何が起こっているのかについて誰かが何か意見を持っていますか?