jasypt的加密与使用

jsaypt是一个对源码进行加密的技术,可以包装我们在源码配置文件里面的有段的敏感信息,如用户名密码等。

他是一种加密的手段,注意加密后的密码要使用需要设置秘钥不然不能正产启动项目

1.依赖(这个是springboot的项目使用相关插件的依赖)
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>1.8</version>
</dependency>
2.获取加密后的密码
使用jasypt包对密码进行加密
1)打开CMD窗口
2)将当前路径切换到jasypt包目录下:(.m2\repository\org\jasypt)

使用如下命令进行密码加密:
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="password" password=fantasy algorithm=PBEWithMD5AndDES

其中input为需要加密的密码
password为加密时采用的秘钥
algorithm为加密算法,默认算法为PBEWithMD5AndDES


显示为:

E:\idea\.m2\repository\org\jasypt\jasypt\1.9.3>java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="password" password=fantasy algorithm=PBEWithMD5AndDES

----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.221-b11
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES # 加密算法
input: password #真实密码
password: fantasy # 加密用的秘钥(这个秘钥要注意保密,泄露了也就失去了源码的加密的意义)
----OUTPUT----------------------
# 注意每次生成的密码都不一样
b+lGxED5CX0CrzhqwdDkRCOyvjUQFAFX


将生成的密码,替换项目中的密码

注意格式问题

spring.datasource.password=ENC(2p9NblOkkwNqsYhDruu5TFPR1RgkL9aH)
3.解密与使用
运行(集成ide使用):

​ 如果是springboot项目,我们集成的代码帮我们加入了starter可以帮我们解密,不过不建议将秘钥配置到项目中。

​ 我们运行的时候需要加入参数作为运行环境

java -jar -Djasypt.encryptor.password=${你生成的秘钥,不能泄露的秘钥} xxx.jar

在ide中使用我们要配置环境变量(vm Options)

也可以配置在西面的environment里,不过笔者的idea不显示。。。

在这里插入图片描述

获得密码

​ 用jar包解密:

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="b+lGxED5CX0CrzhqwdDkRCOyvjUQFAFX" password=fantasy algorithm=PBEWithMD5AndDES

参数列表

input: 是生成的密码
password是我们加密的秘钥
algorithm 是加密的算法
E:\idea\.m2\repository\org\jasypt\jasypt\1.9.3>java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="b+lGxED5CX0CrzhqwdDkRCOyvjUQFAFX" password=fantasy algorithm=PBEWithMD5AndDES
----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.221-b11
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES
input: b+lGxED5CX0CrzhqwdDkRCOyvjUQFAFX
password: fantasy
----OUTPUT----------------------

password

获得了我们原始密码password

4.扩展

jasypt基本信息

Jasypt 这个Java类包为开发人员提供一种简单的方式来为项目增加加密功能,包括:密码Digest认证,文本和对象加密,集成 hibernate,Spring Security(Acegi)来增强密码管理。Jasypt开发团队推出了Java加密工具Jasypt 1.4,它可与Spring Framework、Hibernate和Acegi Security集成。

与项目有关的一位开发者表示,Jasypt是一个Java库,可以使开发者不需太多操作来给Java项目添加基本加密功能,而且不需要知道加密原理。

Jasypt 也即Java Simplified Encryption是Sourceforge.net上的一个开源项目。在当地时间11月23号的通告中,Jasypt 1.4的新特征包括:加密属性文件(encryptable properties files)、Spring Framework集成、加密Hibernate数据源配置、新的命令行工具、URL加密的Apache wicket集成以及升级文档。

根据Jasypt文档,该技术可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查数据的sums. 其他性能包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二进制文件。Jasypt也可以与Acegi Security整合也即Spring Security。Jasypt亦拥有加密应用配置的集成功能,而且提供一个开放的API从而任何一个Java Cryptography Extension都可以使用Jasypt。

Jasypt还符合RSA标准的基于密码的加密,并提供了无配置加密工具以及新的、高可配置标准的加密工具。

1、该开源项目可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信

2、还包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二进制文件。

3、Jasypt还符合RSA标准的基于密码的加密,并提供了无配置加密工具以及新的、高可配置标准的加密工具。

4、加密属性文件(encryptable properties files)、Spring work集成、加密Hibernate数据源配置、新的命令行工具、URL加密的Apache wicket集成以及升级文档。

5、Jasypt也可以与Acegi Security整合也即Spring Security。Jasypt亦拥有加密应用配置的集成功能,而且提供一个开放的API从而任何一个Java Cryptography Extension都可以使用Jasypt。

坐标(如果没有相关jar包可以这个坐标下载)

<dependency>
      <groupId>org.jasypt</groupId>
      <artifactId>jasypt</artifactId>
      <version>{version}</version>
</dependency>

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值