Spring AESのCBCで暗号化するサンプル

Spring AESのCBCで暗号化するサンプルです。
(確認環境:Spring 5.3.7、JDK 11、STS 4)

目次

サンプル AESのCBCで暗号化するサンプル
  AESのCBCで暗号化するサンプル(Test.java)
  メインファイル(MainController.java)
  設定ファイル(applicationContext.xml)
  pom.xml

AESのCBCで暗号化するサンプル

Test.javaで文字列にsaltを付加し暗号化と復号を行います。

AESのCBCで暗号化するサンプル(Test.java)

public static TextEncryptor text(CharSequence password, CharSequence salt)
String encrypt(String text)
String decrypt(String encryptedText)
package com.example.test1;

import org.springframework.stereotype.Component;
import org.springframework.security.crypto.encrypt.Encryptors;
import org.springframework.security.crypto.encrypt.TextEncryptor;

@Component
public class Test {
	public void chkPassword() {
        String password = "あいうえお"; // 文字列
        String salt = "112233"; // Salt
        
        TextEncryptor te = Encryptors.text(password, salt); //Salt入り
        
        String w1 = te.encrypt(password); // 暗号化
        System.out.println("暗号化=" + w1);
        //暗号化=a8428e14ca4693e311fee4594df68de520da4ffbc11055e65073cf159f6bb449
        
        String w2 = te.decrypt(w1); // 復号
        System.out.println("復号=" + w2); // 復号=あいうえお
	}
}

13行目はsaltを付加しています。
15行目は、文字列を暗号化しています。
19行目は、暗号化した文字列を復号しています。

コントローラ(MainController.java)

package com.example.test1;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainController {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = 
				new ClassPathXmlApplicationContext("applicationContext.xml");
		Test cs = context.getBean(Test.class);
		cs.chkPassword();
		context.close();
	}
}

Testクラスを実行します。

設定ファイル(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を指定しています。

関連の記事

SpringBoot フォームで入力チェック(バリデーション)

△上に戻る