• Category Archives: 未分类

微信支付平台证书返回解密方法封装

废话不多说,直接上代码:

 

 

NoSuchMethodError kotlin.collections.ArraysKt.copyInto([B[BIII)[B

查了网络资料,大概原因就是:springboot版本跟okhttp的jar包冲突,因此提示调用的方法没有。

解决方法:

方法一:(已验证)

指定kotlib-stdlib的版本,在pom中加入如下依赖:

方法二:(未验证)

把okhttp3的4.x版本改成3.x版本:

 

JDK的AES加密异常java.security.InvalidKeyException: Illegal key size 的解决方法

今天在调用获取微信支付平台证书V3接口时,需要对其内容进行解密。根据官方的demo如下:

发现执行到 cipher.init(Cipher.DECRYPT_MODE, key, spec); 的时候报 java.security.InvalidKeyException: Illegal key size 错误。

经过资料查阅,得出原因如下:

JDK受版本安全限制,默认只允许128位长度以内的。秘钥长度,如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. java运行时环境默认读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美国对软件出口的控制所造成的的.JDK1.8之后已经兼容了该问题。

解决方案:

方法一:升级不受限制JDK版本
升级JDK9级以上版本,未测试

方法二:替换JDK受限文件级配置
JDK7的下载地址: Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download
JDK8的下载地址: JCE Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8 Download
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件
如果安装了JDK,还要将两个jar文件也放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

方法三:JDK1.8 代码策略修改
JDK1.8 已经支持不受限的jar,但配置默认是受限的
修改代码配置,在加密之前,修改不受限配置.

 

在linux下报java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/PKCS12Key的解决方法

在windows下正常,但是在linux中报了这个错:

解决方法:

1.查看/etc/profile下JAVA_HOME配置路径,

如果不存在,使用whereis java命令你会看到java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java

打开java.conf,找到JAVA_HOME路径

2.将bcprov-jdkxxx.jar放入JAVA_HOME/jre/lib/ext下

3.打开JAVA_HOME/jre/lib/security下的java.security文件,在下面加上

security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

4.重启服务即可

 

附带maven仓库的地址:https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15to18/

Springboot2整合log4j2

1、引入依赖

2、在resources中添加配置文件log4j2.xml

3、在需要日志的类中添加静态变量(如果使用lombok的@Log4j2注解则可以省略这步)

4、打印日志

 

阿里云ECS服务器由密码登录改为密钥登录

1、获取私钥20220827161812

 

2、私钥绑定ECS

20220827161812

3、生成公钥

传到阿里云ECS的任意一个地方,执行以下指令获得公钥并自动添加到/root/.ssh/authorized_keys中:

如果报权限不足,则需要先执行:

若有多个用户,则执行多次ssh-keygen指令即可追加到/root/.ssh/authorized_keys中

4、后续链接使用阿里云申请私钥时下载的文件即可。

 

附加禁止密码登录root账号的方法

找到配置文件/etc/ssh/sshd_config,修改PasswordAuthentication属性为no后执行service sshd restart命令即可生效,配置如下图:

20220827161812

但是要注意,禁止密码登录后,如果密钥无法登录,后期只能挂在liveCD盘(类似于PE取消关于密码的设置)

海马遥控器匹配

1、把车停好,四门关好

2、熄火把钥匙,然后把左前门(驾驶室旁边主控门)开关三次

3、在三秒内插入钥匙并连续开关五次(不用起动发动机)

4、以上步骤在十秒内完成,拔出钥匙按旧遥控器上的开钥和关钥键,此时可听到遥控反应,遥控反应后再按新遥控器上的开钥和关钥,如果遥控器有反应则说明遥控匹配成功。

5、据说此方法可以用于福来美、普力马、海福星(未验证)

java使用jedis执行lua脚本

1、引入依赖

2、编写配置文件

3、编写配置类

4、实现业务逻辑

 

5、Lua脚本

注意:如果Lua脚本返回是true和false的类型,则jedis实际获得的值为1和null。

 

close