没啥说的,就是调用一下JF里面自带的 AesKit 工具,可能有的社友不熟悉怎么用, 我这里有个例子,以前学习过,上石马~
import com.jfinal.kit.AesKit; import com.jfinal.kit.Base64Kit; import java.util.Scanner; public class MyAesKit { public static void main(String[] args) { System.out.println("请输入需加密内容(回车键确认):"); Scanner scan = new Scanner(System.in); String content = scan.nextLine(); scan.close(); //加密 String encode = encode(content); //解密 String contentP = decrypt(encode); System.out.println("———————————————加密内容—————————————————"); System.out.println("原文:"); System.out.println(content); System.out.println("密文:"); System.out.println(encode); System.out.println("———————————————解密内容—————————————————"); System.out.println("测试解密还原内容:"); System.out.println(contentP); } public static String decrypt(String encode) { if (encode == null || encode.length() < 33) return null; //解密 (解析字符串, KEY),这里是一个例子,可以自己定义规则和打码加私盐 return AesKit.decryptToStr(Base64Kit.decode(encode.substring(32)), encode.substring(0, 32)); } public static String encode(String content) { String aesKey = AesKit.genAesKey(); //转为字符串方便存储在配置文件中(加密) return aesKey.concat(Base64Kit.encode(AesKit.encrypt(content, aesKey))); } }
可以配合PropKit使用,也可以配合其他字符串单操作
PropKit https://www.jfinal.com/doc/2-9
工具一起使用, 读取到密文,然后再调用一下解密即可得到原文。比如:
String contentP = MyAesKit.decrypt(PropKit.get("jdbcUrl"));
开发使用时候, 直接 执行main方法。
运维在服务器上临时使用的时候,建个.sh 文件快捷调用一下就可以了:
myAesKit.sh
#!/bin/bash MAIN_CLASS=MyAesKit # 生成 class path 值 APP_BASE_PATH=$(cd `dirname $0`; pwd) CP=${APP_BASE_PATH}/config:${APP_BASE_PATH}/lib/* # 运行,并在控制台输出信息 java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}
cd 到项目目录, 然后执行 ./myAesKit.sh
https://www.jfinal.com/doc/1-3
说明:异常java.security.InvalidKeyException:illegal Key Size的解决方案
在官方网站下载JCE无限制权限策略文件(JDK7的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件
有用就点个赞~