热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jasypt加密算法,springbootjasypt解密

jasypt由于其使用的是PBEWithMD5AndDES加密方式,所以每次加密出来的结果都不一样,所以很适合对数据进行加密没什么好说的了,直接看demo。基本操作添加依

jasypt由于其使用的是PBEWithMD5AndDES加密方式,所以每次加密出来的结果都不一样,所以很适合对数据进行加密

没什么好说的了,直接看demo。

基本操作 添加依赖 com.github.ulisesbocchiojasypt-spring-boot-starter1.16 application.properties中配置跟秘钥 # 配置文件项加解密密码,此处作为测试完,实际情况应该注释,而放在代码中(放在代码中使加密密钥和密文分开)jasypt.encryptor.password: demo 测试 import org.jasypt.encryption.StringEncryptor;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = JasyptApplication.class)public class JasyptApplicationTests { @Autowired private StringEncryptor stringEncryptor;@Testpublic void contextLoads() { //加密方法 System.out.println(stringEncryptor.encrypt("123456")); System.out.println(stringEncryptor.encrypt("123456")); //解密方法 System.out.println(stringEncryptor.decrypt("uaNBj4ZmzCD83uedRYUXqQ==")); System.out.println(stringEncryptor.decrypt("oKBQENfbbQiMyPvECAgPGA=="));}}

运行测试结果如下,可以看到,每次加密产生的密文都不一样,然后不一样的密文解密产生的结果是一样的。密文只有对应的跟秘钥才能解析出来明文,不然会抛错org.jasypt.exceptions.EncryptionOperationNotPossibleException

所以在配置文件中配置密码等敏感字段时,我们可以先加密,配置密文上去,然后使用这个算法解密出来明文使用。
其他非对称高级算法参考 。

应用 在application.properties文件中增加配置项,需要jasypt来解密的密文需要用“ENC(......)”括起来。 # 配置文件项加解密密码,此处作为测试完,实际情况应该注释,而放在代码中(放在代码中使加密密钥和密文分开)#jasypt.encryptor.password: demo# 旺店通配置参数wangdian.sellerId=ENC(aJX3jlTcd/vAx1UAB6h5bw==)wangdian.interfaceId=ENC(HcCmriYEyZAdJpbFfLhLKCYoW9cnbQwh)wangdian.key=ENC(1hTTyI3puyGelRZvumOAJfML3xPKZPgfx4RtJi5rse0VEZUxFzSUBgQNA8b2tzK3)wangdian.baseUrl=ENC(7Szvrmcnj9YZNizvJMOWxJ+USsvFRc+jnjrr7Mf7EhrM3njOJjmKoOOYGUkZZkMloOgsCD4gDJY=)# 用友(快递查询)配置参数yonyou.apicode=ENC(ljmI7p6GFfQEctm7heVX7fcrmzT/YT67XddJDsEbYV8/wOuZRglvz79jekSrv+Z/)yonyou.url=ENC(wjlJlV2cejA8oZQJCHFajfJg9pTAH+WE89rwXl6lM3FrU5E1u4CnC/HPcVXLYo3lit2QNn4EGWe6I6wlO8D1nl3mGwelKj8k) 程序启动类,默认jasypt的密钥是放在配置文件中但这样会导致密文和密钥都在配置文件中,所以我把密钥放在程序中: public static void main(String[] args) { /** 配置加解密跟秘钥,与配置文件的密文分开放 */ System.setProperty("jasypt.encryptor.password", ConstantValue.JASYPT_ENCRYPTOR_PASSWORD); SpringApplication.run(OrderApplication.class, args); } 使用注解的方式来注入配置文件中的配置项: package com.df.dsell.order.config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Data@Component@ConfigurationProperties(prefix = "wangdian")public class WangDianConfig { /** * 接口KEY */ public String interfaceId; /** * 校验key */ public String key; /** * 商店标识 */ public String sellerId; /** * 基址 */ public String baseUrl;} 编写controller来调用一下: @Autowired WangDianConfig wangDianConfig; @Autowired YonyouConfig yonyouConfig; @ApiOperation(value = "测试接口", notes = "测试请认真核实字段") @ApiImplicitParams({ @ApiImplicitParam(name = "moduleName", paramType = "path", allowableValues = OrderApplication.MODULE_NAME, required = true), @ApiImplicitParam(name = "per", paramType = "path", allowableValues = OrderApplication.PER_PB, required = true) }) @GetMapping(value = "{per}/{moduleName}/wangDianConfig") public WangDianConfig testGetKeyOfWangDianConfig() { return wangDianConfig; } 测试结果,可见结果却是将加密文件解密出来了。

推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
author-avatar
密歇根的闪闪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有