Spring AESのCBCで暗号化するサンプルです。
(確認環境:Spring 5.3.7、JDK 11、STS 4)
目次
サンプル | AESのCBCで暗号化するサンプル |
AESのCBCで暗号化するサンプル(TestAes.java) | |
開始するファイル(StartApplication.java) | |
設定ファイル(applicationContext.xml) | |
pom.xml |
AESのCBCで暗号化するサンプル
TestAes.javaで文字列の暗号化と復号を行います。
AESのCBCで暗号化するサンプル(TestAes.java)
public static TextEncryptor text(CharSequence password, CharSequence salt) |
String encrypt(String text) |
String decrypt(String encryptedText) |
package com.example.test1;
import org.springframework.security.crypto.encrypt.Encryptors;
import org.springframework.security.crypto.encrypt.TextEncryptor;
import org.springframework.stereotype.Component;
@Component
public class TestAes {
public void chkPassword() {
String inputStr = "あいうえお"; // 文字列
String pass = "123"; // pass
String salt = "abcd"; // Salt
TextEncryptor textEncryptor = Encryptors.text(pass, salt); // Salt入り
String code1 = textEncryptor.encrypt(inputStr); // 暗号化
System.out.println("暗号化=" + code1);
// 暗号化=240674b22ddd78962bffecc7fc0be5794fa475221449bbc9f3f2c3e82e735d43
String code2 = textEncryptor.decrypt(code1); // 復号
System.out.println("復号=" + code2); // 復号=あいうえお
}
}
11行目のpassは、秘密鍵の生成に使用されるパスワードです。
12行目はsaltです。
14行目は、textメソッドを使用しています。これは「標準の」テキスト暗号化です。
deluxメソッドを使用するとより強力な暗号化になります。以下の公式のJavaDoc参照願います。
16行目は、文字列を暗号化しています。
20行目は、暗号化した文字列を復号しています。
開始するファイル(StartApplication.java)
package com.example.test1;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class StartApplication {
public static void main(String[] args) {
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
TestAes testAes = context.getBean(TestAes.class);
testAes.chkPassword();
context.close();
}
}
設定ファイル(applicationContext.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.example.test1" />
</beans>
pom.xml
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>5.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.7</version>
</dependency>
4行目は、spring-security-coreを指定しています。
関連の記事