1はじめに
今日はJavaライブラリを導入- Jasypt、フルネームをJava Simplified Encryption
、暗号化と復号化。これは、コストの最小値とプロジェクトに統合された暗号で動作するように開発を可能にし、暗号化/復号化深い理解を必要としません。
することによりMaven
、次のように参照のjarパッケージ:
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.9.3</version>
<scope>compile</scope>
</dependency>
2単純なテキストの暗号化
復号化の際、テキストの暗号化暗号化は、などの情報通信、トランザクションフロー、アカウント情報、として最も頻繁に遭遇するニーズ、である、これらは非常に機密性の高い情報があり、多くのシナリオでは、再びショーを保存して読むために暗号化を要求します。API Jasypt次のように、暗号化キーを設定した後、暗号化された情報をすることができ、非常に便利提供します。
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//设置加密密钥
textEncryptor.setPassword("MySalt");
//加密信息
String encryptedText = textEncryptor.encrypt("This is a secret message.");
System.out.println("encryptedText:" + encryptedText);
//解密
String decryptedText = textEncryptor.decrypt(encryptedText);
System.out.println("decryptedText:" + decryptedText);
コードの実装の結果は次のとおりです。
encryptedText:S+j0ZQBxJloVi/qrEwvgnnu9tmeFMnJcmMoTY8wBhbLIdR2IFDt+Fw==
decryptedText:This is a secret message.
3ウェイ・パスワードの暗号化
ユーザパスワードはデータベースに保存されたプレーンテキストのパスワードであってはならない、非常に機密性の高い情報です。私たちは、その後、暗号文をデータベースに格納され、暗号化されたプレーンテキストでパスワードを配置する必要があります。ユーザのログイン、パスワード認証が必要な場合は、2つの解決策があります一つの解決策は、ユーザーが入力したパスワードと比較し、その後、プレーンテキストに、データベースの暗号文の復号にあり、そして、別の解決策は、ユーザが入力したパスワードです暗号化されたデータベースの比較で暗号化し、暗号化、暗号文。
暗号化は、より良いパフォーマンスを解読するよりも簡単であるため、2番目のオプションは、一方では、より合理的であり、他は安全性を確保するために、プレーンテキストで表示された回数を減らすことです。2番目のオプションは、完全に復号せずに、我々はそれの前に暗号化パスワードへの唯一の方法が必要です。次のコードは、このシナリオでアプリケーションを示しています。
BasicPasswordEncryptor encryptor = new BasicPasswordEncryptor();
//加密密码
String encryptedPassword = encryptor.encryptPassword("MyPassword");
//检查密码:正确
System.out.println(encryptor.checkPassword("MyPassword", encryptedPassword));
//检查密码:错误
System.out.println(encryptor.checkPassword("myPassword", encryptedPassword));
コードの実装の結果は次のとおりです。
true
false
図4は、暗号化アルゴリズムを変更するには
Jasyptは、暗号化と復号化に異なるアルゴリズムを使用することから定義することができる柔軟な暗号化/復号化動作を提供してくれます。暗号化アルゴリズムの使用方法を次のコード例が示すPBEWithMD5AndTripleDESを:
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//设置密钥
encryptor.setPassword("MySalt");
//设置加密算法
encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
//加密信息
String encryptedText = encryptor.encrypt("My secret message.");
System.out.println("encryptedText:" + encryptedText);
//解密
String decryptedText = encryptor.decrypt(encryptedText);
System.out.println("decryptedText:" + decryptedText);
コードの実装の結果は次のとおりです。
encryptedText:fdNthKMZzNC5zeNO6b119njcKpqD/02EuGm2fsRs8+c=
decryptedText:My secret message.
5マルチスレッド解読
復号化処理は、通常、暗号化よりも困難で、復号Jasyptは、より良い性能を提供することができるマルチスレッド操作、並列復号化を、提供します。一般的な推奨事項は、機械の解読にプロセッサコアの数が同じでスレッド数を設定することができます。コードは以下の通りであります:
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
//设置线程数为6
encryptor.setPoolSize(6);
//设置密钥
encryptor.setPassword("MySalt");
//设置算法
encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
//加密
String encryptedText = encryptor.encrypt("My secret message.");
System.out.println("encryptedText:" + encryptedText);
//解密
String decryptedText = encryptor.decrypt(encryptedText);
System.out.println("decryptedText:" + decryptedText);
コードの実行結果:
encryptedText:wuZLTiEZ52O/nD2ktecPP75LRj+1Bu3s7YyfK8XcOc0=
decryptedText:My secret message.
概要6
この記事では、いくつかのオペレーティング良いのJava暗号化ライブラリJasyptを説明し、我々は暗号シーンで助けたいと思います。また、Jasyptのような他のフレームワークと統合することができる春と休止状態、後ほど紹介します。
社会的関心番号へようこそ< 遅いカボチャは、言ったあなたが更新していきます、> ...
ハハ、ガボールメインマイクロ文字はようこそ、賞賛の友人のポイントを作ります...
より多くの書籍、より多くの共有であり、より書き込み、以上の仕上げより。