jasypt命令行工具的使用说明

简介:

  jasypt能够以很简单的方式为Java项目提供加密功能,这种简单的方式体现着它的命令行工具,与Spring,Hibernate, Springsecurity, wicket等第三方框架的集成。

    

    本文参加jasypt官方网站:http://www.jasypt.org/  下载jasypt包,解压缩到本地目录。

   如下图:

   根目录:

   wKiom1OKlyfT8rvRAAGJqqy5qBs453.jpg

   命令行工具目录:

   wKioL1OKlpXTPiuAAAHjoduEf5U657.jpg

  

   说明:

           在lib目录下是jasypt的核心jar和与第三方组件集成的jar. 

           在bin目录下是jasypt的命令行工具脚本.

           在apidoc目录下自然就是帮助文档。


   下面主要介绍jasypt的命令行工具(这里的操作环境是windows系统):

   1.listAlgorithms.bat(listAlgorithms.sh)

      wKioL1OKmULDrPpvAAD47HEDwtc868.jpg

    DIGEST ALGORTHMS:摘要算法

    PBE ALGORTHMS(PASSWORD BASE ENCRYPTION):基于口令的加密算法

  2.下面介绍如何使用digest.bat, encrypt.bat,  decrypt.bat

  •      digest.bat

    wKioL1OKnA2DY1ymAAFMVE5Dn6w879.jpg

   

    命令:digest.bat input=sa algorithm=SHA的意思是对输入信息:"sa" 使用SHA算法计算摘要信息,OUTPUT则是输出结果。

    说明:直接输入digest.bat可以查看命令帮助信息和参数要求,这里input是必选参数,algorithm是可选参数,默认的计算摘要信息算法是MD5。

  •     encrypt.bat和decrpt.bat

         加密和解密是对应的,同样的方式,直接输入命令就可以查看帮助信息和参数要求。比如在命令窗口输入:encrypt.bat

wKioL1OKnejSKibsAAF2UK99jvs302.jpg

      由于encrypt.bat和decrypt.bat是对应的,因此帮助信息和参数要求是一致的,区别在于encrypt.bat的input参数值是“原信息”,decrypt.bat的input参数值是“加密信息”。



       从上面的参数说明中可以看到algorithm是可选的,那是应为jasypt提供了默认的一套参数取值,而这里的加密的默认算法是:PBEWithMD5AndDES


     下面通过一个例子演示一下加密和解密:

     加密:

    

wKiom1OKotSgoXy9AAG4uO_qFcg165.jpg


   解密:

wKioL1OKom2xPCaCAAIGfXgHF4w983.jpg

      上述加密解密使用了“PBEWITHSHA1ANDRC2_40”算法,操作一切正常。

      经过对PBE算法中的其它三个做了同样的测试发现使用“PBEWITHMD5ANDTRIPLEDES”算法操作失败的情况。

    

wKioL1OKpLmTWdWRAAJYEJqT5SI679.jpg

  

   从上面的提示信息中很难看出问题出在什么地方,于是想到用Java程序来测试一下这个算法。结果错误提示信息如下:

  

1
2
3
4
5
org.jasypt.exceptions.EncryptionOperationNotPossibleException:
  Encryption raised an exception. 
  A possible cause is you are using strong encryption algorithms and you have 
  not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 
  in  this  Java Virtual Machine


  大致的意思是没有安装JCE不受限长度策略文件,于是百度谷歌一阵再Orcale官网找到了JDK7的JCE文件。http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

下载后解压可以放到JAVA_HOME\jdk1.7.0_45\jre\lib\security下或者JAVA_HOME\jdk1.7.0_45_jre\lib\security下,一共两个文件local_policy.jar和US_export_policy.jar.这样会覆盖度JDK默认的这两个文件。


  为了一探究竟,这里个文件的内容不同之处,解压之后发现不同的地方在于local_policy.jar里的local_policy.policy内容。

JDK默认的local_policy.policy内容是:


1
< span  style = "font-family:'微软雅黑', 'Microsoft YaHei';font-size:14px;" >// Some countries have import limits on crypto strength. This policy file< br >// is worldwide importable.< br >< br >grant {< br >    permission javax.crypto.CryptoPermission "DES", 64;< br >    permission javax.crypto.CryptoPermission "DESede", *;< br >    permission javax.crypto.CryptoPermission "RC2", 128, < br >                                     "javax.crypto.spec.RC2ParameterSpec", 128;< br >    permission javax.crypto.CryptoPermission "RC4", 128;< br >    permission javax.crypto.CryptoPermission "RC5", 128, < br >          "javax.crypto.spec.RC5ParameterSpec", *, 12, *;< br >    permission javax.crypto.CryptoPermission "RSA", *;< br >    permission javax.crypto.CryptoPermission *, 128;< br >};< br ></ span >


  JCE的local_policy.policy内容是:

 

1
< span  style = "font-family:'微软雅黑', 'Microsoft YaHei';font-size:14px;" >// Country-specific policy file for countries with no limits on crypto strength.< br >grant {< br >    // There is no restriction to any algorithms.< br >    permission javax.crypto.CryptoAllPermission; < br >};< br ></ span >

   

   JDK默认的policy中对一些国家进口密码强度进行了限制。


本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1420837,如需转载请自行联系原作者
相关文章
|
Java API Maven
敏感数据的保护伞——SpringBoot Jasypt加密库的使用
我们经常会在yml配置文件中存放一些敏感数据,比如数据库的用户名、密码,第三方应用的秘钥等等。这些信息直接以明文形式展示在文件中,无疑是存在较大的安全隐患的,所以今天这篇文章,我会借助jasypt实现yml文件中敏感信息的加密处理。
5643 1
敏感数据的保护伞——SpringBoot Jasypt加密库的使用
|
NoSQL Redis
M1 MacBook安装redis
M1 MacBook安装redis
1147 0
|
5月前
|
缓存 安全 Java
《深入理解Spring》过滤器(Filter)——Web请求的第一道防线
Servlet过滤器是Java Web核心组件,可在请求进入容器时进行预处理与响应后处理,适用于日志、认证、安全、跨域等全局性功能,具有比Spring拦截器更早的执行时机和更广的覆盖范围。
|
机器学习/深度学习 人工智能 自然语言处理
全新开源通义千问Qwen3上架阿里云百炼
Qwen3是Qwen系列大型语言模型的最新成员,作为混合推理模型,其旗舰版本Qwen3-235B-A22B在代码、数学和通用能力测试中表现出色,与顶级模型DeepSeek-R1、o1、o3-mini等相比具有竞争力。小型MoE模型Qwen3-30B-A3B激活参数仅为QwQ-32B的10%,性能更优,甚至小规模模型Qwen3-4B也能匹敌Qwen2.5-72B-Instruct。Qwen3支持思考与非思考两种模式,可根据任务需求灵活调整推理深度,并支持119种语言,Qwen3在推理、工具调用及多语言处理等方面显著提升,目前已开源并在阿里云百炼平台上线,提供便捷体验。
4355 0
|
Java
杨校老师课堂之JDK1.8下载、安装与环境变量配置
杨校老师课堂之JDK1.8下载、安装与环境变量配置
1439 0
|
存储 监控 算法
|
Web App开发 前端开发 JavaScript
|
JavaScript 前端开发
JS javascript 点击鼠标 鼠标事件 获取元素 获取元素Xpath
JS javascript 点击鼠标 鼠标事件 获取元素 获取元素Xpath
449 0
|
编解码 算法 安全
实测办公场景下,国产远程控制软件的表现力如何?(技术解析)
大家好,我是码农飞哥,作为一个常年混迹职场的老码农。我在工作和生活中碰到了很多问题,也帮助别人解决了很多问题。前有帮实习生配环境,后有帮同事调BUG,中间还有教老爸如何使用手机。
467 0
实测办公场景下,国产远程控制软件的表现力如何?(技术解析)
|
数据可视化 jenkins 关系型数据库
docker使用Portainer工具,配置服务模板可快速搭建SQLserver2019服务
docker使用Portainer工具,配置服务模板可快速搭建SQLserver2019服务
1072 0
docker使用Portainer工具,配置服务模板可快速搭建SQLserver2019服务

热门文章

最新文章