使用AES加密解密在windows上使用没有问题,在Linux(Centos6.5)上出现解密失败的解决方法
2016-06-16 11:08
896 查看
据网上资料所知,是因为在加密后,因为不同系统环境差异所致解密失败。我把自己解决的方法说一下:
在加密的时候最好用BASE64Encoder去封装一下即可(不封装的话解密的时候会莫名其妙的丢掉加密的字符)。当然这只是本人的解决办法(实验可用)。下面上加密和解密的代码:仅供参考,重点是红色部分。
在加密的时候最好用BASE64Encoder去封装一下即可(不封装的话解密的时候会莫名其妙的丢掉加密的字符)。当然这只是本人的解决办法(实验可用)。下面上加密和解密的代码:仅供参考,重点是红色部分。
/** * 根据key 加密src * @param key * @param src * @return * @throws Exception */ public static String encrypt(String key,byte[] src)throws Exception { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(key.getBytes("UTF-8")); kgen.init(128,secureRandom); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKey skey=new SecretKeySpec(enCodeFormat,"AES"); Cipher cipher=Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE,skey); BASE64Encoder encoder = new BASE64Encoder(); //需要加上 return encoder.encode(cipher.doFinal(src)); }catch (Exception e) { throw new RuntimeException("加密时出现异常!",e); } } /* * 根据key解密src */ public static byte[] decrypt(String key,String s)throws Exception{ try { BASE64Decoder decoder = new BASE64Decoder(); byte[] src = decoder.decodeBuffer(s); KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(key.getBytes("UTF-8")); kgen.init(128,secureRandom); SecretKey secretKey = kgen.generateKey(); byte[] deCodeFormat = secretKey.getEncoded(); SecretKey secretkey=new SecretKeySpec(deCodeFormat,"AES"); Cipher cipher=Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE,secretkey); return cipher.doFinal(src); }catch (Exception e) { throw new Exception("解密时出现异常!",e); } }
相关文章推荐
- Linux的目录结构
- ubuntu环境下samba服务器简单安装与配置
- Linux(5)Linux常用命令_rpm命令
- linux下vi命令大全
- Linux-网桥原理分析 .
- linux ext4无法使用超过16T磁盘的解决办法
- Linux下部署多个工程的方法
- iptables学习笔记
- 让普通用户具备sudo执行权限-修改linux默认启动方式
- linux系统上的weblogic自启动
- linux下查看内存使用情况的方法总结(转)
- linux中的进程管理
- CentOS6.7 双网卡绑定
- iperf based on linux
- sosreport命令进行系统环境收集
- 基于树莓派的Spark集群搭建
- linux中利用sandbox自动安装MySQL
- Linux 上四个最佳的现代开源代码编辑器
- Linux下安装配置NTP时间同步服务器
- Linux时间同步+国内常用的NTP服务器地址