Java:密码包(加密和解密)。无效的密钥错误
AES-256(和AES-192)要求为JRE安装无限强度管辖策略文件(最后一次下载为http://java.sun.com/javase/downloads/index.jsp)。如在您的类中那样,如果没有这种支持,则会在尝试使用192位或256位密钥时导致InvalidKeyException。
《Java6的JCA参考指南》中记录了AES允许的最大密钥大小,没有无限的强度,因此恰好是128位。
解决方法我正在使用静态方法在类中使用javax.crypto加密和解密消息。我有2个使用cipher和dcipher的静态方法,以完成他们应该做的事情,我需要初始化一些变量(也是静态的)。但是,当我尝试使用它时,我得到的InvalidKeyException与我提供给ecipher.init(…)的参数。我找不到原因。这是代码:
private static byte[] raw = {-31,17,7,-34,59,-61,-60,-16,26,87,-35,114,-53,99,-116,-82,-122,68,47,-3,-17,-21,-50,126,119,-106,-119,-5,109,98}; private static SecretKeySpec skeySpec; private static Cipher ecipher; private static Cipher dcipher; static {try { skeySpec = new SecretKeySpec(raw,'AES'); // Instantiate the cipher ecipher = Cipher.getInstance('AES'); dcipher = Cipher.getInstance('AES'); ecipher.init(Cipher.ENCRYPT_MODE,skeySpec); dcipher.init(Cipher.DECRYPT_MODE,skeySpec);} catch (NoSuchAlgorithmException e) { throw new UnhandledException('No existe el algoritmo deseado',e);} catch (NoSuchPaddingException e) { throw new UnhandledException('No existe el padding deseado',e);} catch (InvalidKeyException e) { throw new UnhandledException('Clave invalida',e);} }
相关文章:
1. css - ionic中的栅格布局如何让文字内容多少不同的每一列中的内容都能垂直居中?2. android glide asbitmap 在baseadpter中的问题3. docker网络端口映射,没有方便点的操作方法么?4. angular.js使用$resource服务把数据存入mongodb的问题。5. docker不显示端口映射呢?6. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????7. macos - mac下docker如何设置代理8. docker绑定了nginx端口 外部访问不到9. docker-compose 为何找不到配置文件?10. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?

网公网安备