程序在本地调试,接收数据,解密数据,都没问题,在linux运行,接收数据抛出异常,判断是程序走到解密类,抛出此异常,
java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7Padding
java.lang.NullPointerException
at com.bajiu.netty.utils.ByteUtil.byteArrToHexString(ByteUtil.java:253)
at com.bajiu.netty.server.ServerHandler.channelRead(ServerHandler.java:163)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
抛出此异常的原因
堆栈跟踪:找不到支持AES/ECB/PKCS7Padding的提供商,java默认支持是PKCS5Padding填充方式,程序在运行时候,需要的是PKCS7Padding,Java在没有提供,说简单点,就是程序要用的东西,Java没有提供
解决方案
1,去BouncyCastle官网下载对应JDK版本的jar包,对应jdk下载对应版本jar包,如图;
2,找到linux服务器JDK安裝目录,把下载的jar包上传到该目录下
目录: ${JDK_HOME}/jdk1.8.0_2