• Cipher 加解密window正常linux下报错 规格严格


    1. Exception in thread "main" javax.crypto.BadPaddingException: Given final block not properly padded
    2. at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    3. at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    4. at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
    at javax.crypto.Cipher.doFinal(DashoA13*..
     
    解决:

    SecureRandom 实现完全随操作系统本身的內部状态,除非调用方在调用 getInstance 方法之后又调用了 setSeed 方法;该实现在 windows 上每次生成的 key 都相同,但是在 solaris 或部分 linux 系统上则不同。 
    1. //防止linux下 随机生成key
    2. SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" );
    3. secureRandom.setSeed(keycontent.getBytes());
    4. // 根据密钥初始化密钥生成器
    5. kgen.init(keyNum, secureRandom);
      参考:https://blog.csdn.net/zhangyucen/article/details/44807559
  • 相关阅读:
    iscroll.js
    HTML 第九章总结
    HTML第八章总结
    HTML第七章总结
    HTML第六章总结
    HTML第五章总结
    HTML第四章总结
    HTML第三章总结
    HTML第二章总结
    HTML第一章总结
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/16267014.html
Copyright © 2020-2023  润新知