暗号化と復号化のサポート
春の雲は、内蔵の暗号化と復号化のサポート、対称暗号化と非対称暗号化を含みます。対称暗号化だけbootstrap.ymlファイルで使用されるencrypt.key
暗号鍵属性を指定しました。
暗号:
キー:ABC
この春クラウドは自動的に作成されますorg.springframework.security.crypto.encrypt.TextEncryptor
豆の種類を。TextEncryptorは、暗号化と復号化に使用することができます。
@SpringBootTest(クラス = アプリケーション。クラス)
@RunWith(SpringRunner 。クラス)
パブリック クラス 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.key
やencrypt.keyStore.xxx
、関連する情報、春の雲は、RSAベースのTextEncryptorを作成するために優先させて頂きます。