Spring Boot学习随笔- Jasypt加密数据库用户名和密码以及解密 ...

打印 上一主题 下一主题

主题 826|帖子 826|积分 2478

学习视频:【编程不良人】2021年SpringBoot最新最全教程
第十九章、Jasypt加密

Jasypt全称是Java Simplified Encryption,是一个开源项目。
Jasypt与Spring Boot集成,以便在应用程序的属性文件中加密敏感信息,然后在应用程序运行时解密这些信息。
可以使用jasypt-spring-boot-starter这个依赖项。从而实现属性源的加密和解密功能。另外,还可以使用@EnableEncryptableProperties注解来启用整个Spring环境中的可加密属性。
除了使用starter之外,还可以通过添加@EncryptablePropertySource注解来声明单独的可加密属性源,或者使用自定义的ConfigurableEnvironment类来实现加密属性的启用。

  • 加密原理
  • 引入依赖
    1. <dependency>
    2.     <groupId>com.github.ulisesbocchio</groupId>
    3.     <artifactId>jasypt-spring-boot-starter</artifactId>
    4.     <version>3.0.5</version>
    5. </dependency>
    复制代码
  • 配置
    1. jasypt:
    2.   encryptor:
    3.     algorithm: PBEWITHHMACSHA512ANDAES_256 #默认指定加密算法
    4.     password: 123456 # 指定密钥:-Djasypt.encryptorpassword=123456
    复制代码
  • 加密
    1. @Autowired
    2. private StringEncryptor stringEncryptor;
    3. @Test
    4. public void testSecret() {
    5.     //加密
    6.     String secret = stringEncryptor.encrypt("root");
    7.     System.out.println("secret = "+ secret);
    8. }
    复制代码

    得到”root”加密后的字符串
  • 解密
    1. @Test
    2. public void testSecret() {
    3.     // 解密  输入获取的加密字符串进行解密
    4.     String decrypt = stringEncryptor.decrypt("AFag9CUGUtX3ztEMirgaiKzwSy4d8jRDdrXwci+pCLfep2E6Hcl/vDz+6+YB46dm");
    5.     System.out.println("decrypt = " + decrypt);
    6. }
    复制代码

  • 解密原理
    配置文件中的jasypt.encryptor.password 是密钥,密钥可以随便设置,解密方法就是依靠密钥才能实现的,否则解密失败,密钥一般不放在配置文件中,而是通过vm传参加载
    **-Djasypt.encryptor.password=zxckqwe**

    jar包 加载密钥的方式:将参数放在-jar的后面
  • 数据库连接,主机名、用户名和密码填:ENC(加密后的密码)
    1. mysql:
    2.   host: ENC(d8CPj1+lGSxYqPv/sAbL9Sn8YxVEqNcEx8aRMKf3G3v76IGlbfI9+lCESQ7QLDtN)
    3. datasource:
    4.   type: com.alibaba.druid.pool.DruidDataSource
    5.   driver-class-name: com.mysql.cj.jdbc.Driver
    6.   url: jdbc:mysql://${mysql.host}:3306/ems?characterEncoding=UTF-8
    7.   username: ENC(DZKipHxtCFm3zsNq0rcPv0BhpQEPv/xlz+VD8GMOekznEDokVIvxtT2aAIqNoiNl)
    8.   password: ENC(e453fFe9wzx4+WA4Lasg30rpS70iqyW68j+y8M6cpMIePiWfS5wBanzkk+C3GbXQ)
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表