美文网首页
AES 不同服务器间解密失败

AES 不同服务器间解密失败

作者: angelali_90b4 | 来源:发表于2023-05-08 19:31 被阅读0次

有A、B两个不同的服务,A进行加密 发送给B进行解密
在windows服务器测试没有问题,linux上存在问题
解决办法如下

                //1.构造密钥生成器,指定为AES算法,不区分大小写
                KeyGenerator kgen = KeyGenerator.getInstance(KEY_AES);
                //2.根据ecnodeRules规则初始化密钥生成器
                //生成一个128位的随机源,根据传入的字节数组
//            kgen.init(128, new SecureRandom(key.getBytes(DEFAULT_CHARSET)));  // new SecureRandom() 在Linux环境下会导致解密失败,建议使用下面两句
                SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
                random.setSeed(key.getBytes(DEFAULT_CHARSET));
                kgen.init(128, random);


//SecureRandom 实现完全隨操作系统本身的内部状态,除非调用方在调用 getInstance 方法之后又调用了 setSeed 方法;该实现在windows上每次生成的 key 都相同,但是在 linux 系统上则不同

相关文章

网友评论

      本文标题:AES 不同服务器间解密失败

      本文链接:https://www.haomeiwen.com/subject/mnmlsdtx.html