春の雲(03) - 内蔵の暗号化と復号化をサポート

暗号化と復号化のサポート

春の雲は、内蔵の暗号化と復号化のサポート、対称暗号化と非対称暗号化を含みます。対称暗号化だけbootstrap.ymlファイルで使用されるencrypt.key暗号鍵属性を指定しました。

暗号キーABC

この春クラウドは自動的に作成されますorg.springframework.security.crypto.encrypt.TextEncryptor豆の種類を。TextEncryptorは、暗号化と復号化に使用することができます。

@SpringBootTestクラス =  アプリケーションクラス)
 @RunWithSpringRunner クラス)
 パブリック クラス TextEncryptorTest { @Autowired プライベートTextEncryptor textEncryptor。@Test 公共ボイド試験(){
     ためint型 I = 0 ; iは< 10 ; I ++){
       文字列平文= " ABCDEFGを"

  
   

  
     encryptedText =  これtextEncryptor 暗号化(平文)。
      文字列 decryptedText =  これtextEncryptor (encryptedText)解読;
      システムアウトprintln(平文+  " ---------- "  + encryptedText +  " ----------- "  + decryptedText)。
    } 
  } 

}

あなたは上記のコードを実行する場合は、同じテキストにTextEncryptorの暗号化の結果の後に10回の結果を見つけるたびに暗号化は同じではありませんが、結果は同じで、それらを解読しています。これは、基礎となるAES暗号化アルゴリズムを使用しているためであるAES/CBC/PKCS5PaddingによるIV値に毎回異なるように暗号化結果のうち、同じでないように、、、IV値をランダムに再度たびに生成使用して。詳細については、を参照してくださいorg.springframework.cloud.bootstrap.encrypt.EncryptionBootstrapConfigurationソースコード。

春の雲も、内蔵の非対称暗号化および復号化のためのサポート。RSAアルゴリズムを根底にはRSAアルゴリズムに基づいて、非対称暗号化キーを生成して、キーストアに格納するために私たちを必要とし、使用されています。そして、以下のようにしてキーストアbootstrap.ymlの情報を指定します。

暗号キーストア所在地server.jksの
    別名とtestkey 
    パスワード123456 
    秘密key123456

春の雲は自動的RsaSecretEncryptor、達成RSAアルゴリズムTextEncryptorに基づいて作成されます。キーストア内に格納された公開鍵のペアを使用してRsaSecretEncryptorは、復号化に秘密鍵を使って暗号化されました。これは、ランダムに生成されたキーは、AESキーの長さは、暗号化キーとを介して一緒に公開鍵で暗号化された暗号化された暗号文でAES暗号化アルゴリズムを使用して暗号化されたコンテンツをさせて頂きます。だから、同じではありません暗号化されたそれぞれの内容によって同じ結果を達成することができます。復号された平文限り、逆の操作を行う場合、最大取得します。詳細はRsaSecretEncryptorソースを見つけることができます。

両方が指定された場合encrypt.keyencrypt.keyStore.xxx、関連する情報、春の雲は、RSAベースのTextEncryptorを作成するために優先させて頂きます。

おすすめ

転載: elim.iteye.com/blog/2442074