Jasypt是一个Java库,允许开发人员以简单的方式添加基本加密功能,而无需深入研究加密原理。利用它可以实现高安全性的,基于标准的加密技术。其实现原理是实现了 ApplicationContextInitializer 接口,重写了获取环境变量的方法,在容器初始化时对配置文件中的属性进行判断,若包含前后缀SNC()表示是加密属性值,则进行解密并返回。
2. 在application.yml中配置加密所需的秘钥以及加密属性的前后缀;
3. 生成加密密码;
方式一:通过Java代码生成
/**
* 加密
*
* @param plaintext 明文密码
* @return
*/
public static String encrypt(String plaintext) {
//加密工具
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//加密配置
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setAlgorithm(ALGORITHM);
//生成秘钥的公钥
config.setPassword(PASSWORD);
//应用配置
encryptor.setConfig(config);
//加密
String ciphertext = encryptor.encrypt(plaintext);
return ciphertext;
}
/**
* 解密
*
* @param ciphertext 待解密秘钥
* @return
*/
public static String decrypt(String ciphertext) {
//加密工具
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
//加密配置
EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
config.setAlgorithm(ALGORITHM);
//生成秘钥的公钥
config.setPassword(PASSWORD);
//应用配置
encryptor.setConfig(config);
//解密
String pText = encryptor.decrypt(ciphertext);
return pText;
}
方式二:通过执行命令生成
-- 加密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=shsnc!@# password=shsnc123456 algorithm=PBEWithMD5AndDES
-- 解密
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input=z4xP29fuY4wF2AJqp1NnoGJxj password=shsnc123456 algorithm=PBEWithMD5AndDES
4. 替换application.properties需要加密的明文密码为SNC(加密字符串)。
例如:
更多精彩干货分享
点击下方名片关注
IT那活儿
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129836.html
摘要:这里使用的是数据库启动类上加上注解在启动类中添加对包扫描扫描多个包下的可以有以下几种方法扫描会自动加载相关配置,数据源就会自动注入到中,会自动注入到中,可以直接使用。有配置文件下的使用扫描多个包下的可以有以下几种方法扫描 Spring-Boot 学习笔记 1 Spring-Boot 介绍 1.1 什么是Spring-Boot Spring-Boot是由Pivotal团队提供的全新框架...
摘要:,这是标记配置文件集版本化的服务器端特性。要配置对称密钥,需要将设置为秘密字符串或使用环境变量将其排除在纯文本配置文件之外。 Spring Cloud Config Server Spring Cloud Config Server为外部配置提供基于HTTP资源的API(名称—值对或等效的YAML内容),通过使用@EnableConfigServer注解,服务器可嵌入Spring Bo...
摘要:暑假的时候在学习了并成功运用到了项目中。这是提供的一个安全权限控制框架,可以根据使用者的需要定制相关的角色身份和身份所具有的权限,完成黑名单操作拦截无权限的操作。用户通过登陆操作获得我们返回的并保存在本地。 暑假的时候在学习了 Spring Security 并成功运用到了项目中。 在实践中摸索出了一套结合 json + jwt(json web token) + Spring Boo...
摘要:暑假的时候在学习了并成功运用到了项目中。这是提供的一个安全权限控制框架,可以根据使用者的需要定制相关的角色身份和身份所具有的权限,完成黑名单操作拦截无权限的操作。用户通过登陆操作获得我们返回的并保存在本地。 暑假的时候在学习了 Spring Security 并成功运用到了项目中。 在实践中摸索出了一套结合 json + jwt(json web token) + Spring Boo...
摘要:所以这里我们就需要对数据库的用户名和密码进行加密,这也是本文的由来。本文采用对配置文件加密的相关方法,其实呢,也还有其他方案,具体的会在后面的相关文章中说明。 前言 在日前安全形势越来越严重的情况下,让我意识到在项目中存在一个我们经常忽略的漏洞,那就是我们的项目的配置文件中配置信息的安全,尤其是数据库连接的用户名和密码的安全。所以这里我们就需要对数据库的用户名和密码进行加密,这也是本文...
摘要:截至年月日,将网站标记为不安全。管理密码使用密码哈希以纯文本格式存储密码是最糟糕的事情之一。是中密码哈希的主要接口,如下所示提供了几种实现,最受欢迎的是和。 Spring Boot大大简化了Spring应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量,如果你已经习惯了Spring和大量XML配置,Spring Boot无疑是一股清新的空气。 Spring ...
阅读 1249·2023-01-11 13:20
阅读 1557·2023-01-11 13:20
阅读 1011·2023-01-11 13:20
阅读 1680·2023-01-11 13:20
阅读 3971·2023-01-11 13:20
阅读 2518·2023-01-11 13:20
阅读 1310·2023-01-11 13:20
阅读 3483·2023-01-11 13:20