spring boot调用加密狗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot调用加密狗相关的知识,希望对你有一定的参考价值。

参考技术A java开发加密狗的应用程序,应用于web项目。
springboot项目加密解决方案:配置pomxml用maven直接构建加密后的jar包。使用maven构建jar包;如果springboot项目使用到了JPA并且是用hibernate实现的,那么启动加密后的jar是会报错的,创建服务命令:管理员进入cmd输入 WinSWNET,exe install 即可创建服务;启动服务即可。
"加密锁"(也称加密狗)最早由彩虹天地开发,现已成为软件加密行业的代名词。加密锁是为软件开发商提供的一种智能型的具有软件保护功能的工具,它包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密锁基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。

Spring Boot加密配置文件特殊内容

有时安全不得不考虑,看看新闻泄漏风波事件就知道了

我们在用Spring boot进行开发时,经常要配置很多外置参数ftp、数据库连接信息、支付信息等敏感隐私信息,如下

技术图片技术图片?

这不太好,特别是互联网应用,应该用加密的方式比较安全,有点类似一些应用如电商、公安、安检平台、滚动式大屏中奖信息等显示身份证号和手机号都是前几位4109128*********和158*******。

那就把图中的明文改造下

1.  引入加密包,可选,要是自己实现加解密算法,就不需要引入第三方加解密库

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.2</version>
</dependency>
技术图片

2.   加密敏感内容,然后填充配置文件 

加密代码:

BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
		textEncryptor.setPassword("company");

		String name = textEncryptor.encrypt("root");
		String password = textEncryptor.encrypt("cstorfs");
	
		System.out.println("数据库用户名加密后:"+name);
		System.out.println("数据库密码加密后:"+password);
技术图片

输出加密后的效果

技术图片技术图片?

把这两个值对应的填充到数据库用户名和密码

技术图片技术图片?

3.   编写配置类

就是Spring里的标有@Configuration注解的类,然后解密配置文件里的数据库用户名和密码(就是上图中的敏感属性字段)

技术图片技术图片?

4.  编写测试案例

只写核心代码

// 我使用的最新版Springboot2.3.0(放弃1版本)启动后,不放心的话可以测试数据库是否连接正常
		UserMapper userMapper = applicationContext.getBean(UserMapper.class);
		Example example = new Example(User.class);
		example.createCriteria().andEqualTo("username", "dongguangming");
		List<User> userList = userMapper.selectByExample(example);
		if (userList.size() > 0) {
			User user = userList.get(0);
			logger.info("数据库连接正常,从用户表取用户名是donggguangming的数据,用户:" + user);
		}
技术图片

输出效果:

 技术图片技术图片?

ok,就是这效果!!!

注意,加解密算法没有强制要求,可以自己写,敏感信息(ftp、email、数据库连接信息、支付支付宝微信等)也可以接着加,用的时候把它解密出现就行

以上是关于spring boot调用加密狗的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot加密属性文件数据

Spring Boot: 加密应用配置文件敏感信息

Spring Boot MongoDB 使用加密字段

Spring Boot - 加密 JSON 数据

Spring Boot配置文件数据也可以轻松加密?

Spring Boot配置文件数据也可以轻松加密?