java simple encrypt(jasypt)使用简介

使用 jasypt 对 配置文件中的敏感信息进行加密
具体参考:
https://github.com/ulisesbocchio/jasypt-spring-boot

  • spring boot 项目,在 maven项目的依赖中添加

    com.github.ulisesbocchio
    jasypt-spring-boot-starter
    2.1.0

Note: 其他配置参考官网

  • 加密信息:在jasypt 的包下,使用命令行进行加密
java -cp ~/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="sa" password=supersecretz algorithm=PBEWithMD5AndDES saltGeneratorClassName = org.jasypt.salt.RandomSaltGenerator

java -cp jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="sa" password=supersecretz algorithm=PBEWithMD5AndDES saltGeneratorClassName=org.jasypt.salt.RandomSaltGenerator

具体加密步骤和信息如下:
进入jasypt的包下,输入加密信息和加密配置,运行。

	D:\maven-repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar  org.jasyp
	t.intf.cli.JasyptPBEStringEncryptionCLI input="sa" password=supersecretz algorit
	hm=PBEWithMD5AndDES
	
	----ENVIRONMENT-----------------
	
	Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.144-b01
	
	
	
	----ARGUMENTS-------------------
	
	algorithm: PBEWithMD5AndDES
	input: sa
	password: supersecretz
	
	
	
	----OUTPUT----------------------
	
	KGFTipzDEtyxGHHyhqkqGw==

最终的output就是 KGFTipzDEtyxGHHyhqkqGw==
加密的默认配置参考:
https://github.com/ulisesbocchio/jasypt-spring-boot#encryption-configuration

  • 加密完后在配置文件中添加密钥
    jasypt.encryptor.password: supersecretz

  • 为了安全起见,可以不将密钥(即password)写在properties或其他配置文件中,然后在启动springboot时通过传参的方式传入。
    或者打包的时候不包括项目的配置文件,然后将配置文件写在其他地方,在启动spring boot 的时候传入配置文件,同理,加密的密钥也可通过此时的参数传入。

java -Djasypt.encryptor.password=supersecretz -jar myApp.jar 

java -jar myApp.jar --spring.config.loaction=file:D:\workspace\application\application.yml 

具体可参考spring官网
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

你可能感兴趣的:(Java)