没啥说的,就是调用一下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目录下覆盖原来文件
有用就点个赞~