package com.kxs.gateway.api.config;

import cn.hutool.crypto.symmetric.AES;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 对称加密配置类
 *
 * @author Lxq
 * @date 2023-11-03
 */
@Configuration
@RequiredArgsConstructor
public class AesCryptoConfig {

	private final GatewayConfigProperties configProperties;

	/**
	 * <p>
	 * aes加密配置 此处设在配置类可以避免每次请求都去创建加密类，以此节约性能
	 * </p>
	 * @return {@link AES}
	 */
	@Bean
	public AES cryptoAes() {
		return new AES(configProperties.getEncodeMode(), configProperties.getEncodePadding(),
				// 密钥，可以自定义
				configProperties.getEncodeKey().getBytes(),
				// iv加盐，按照实际需求添加
				configProperties.getEncodeIv().getBytes());
	}

}
