码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat:3DES解密时中文乱码

时间:2019-01-21 13:49:06      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:div   public   解密   中文乱码   print   final   hpa   运行时   padding   

情况说明:直接用main方法运行时是没有问题的,web程序一放入tomcat中就会出现解密时乱码。

解决办法:

在解密时,返回string时对数组需要指定UTF-8编码。


public static String decode(String desStr) {
    Base64 base64 = new Base64();
    byte[] keybyte = hex(KEY);
    byte[] src = null;
    try {
      src = base64.decode(desStr.getBytes("UTF-8"));
      // 生成密钥
      SecretKey deskey = new SecretKeySpec(keybyte, "DESede");
      // 解密
      Cipher c1 = Cipher.getInstance("DESede");
      c1.init(Cipher.DECRYPT_MODE, deskey);
      String pwd = new String(c1.doFinal(src),Charset.forName("utf-8"));
      return pwd;
    } catch (java.security.NoSuchAlgorithmException e1) {
      e1.printStackTrace();
    } catch (javax.crypto.NoSuchPaddingException e2) {
      e2.printStackTrace();
    } catch (java.lang.Exception e3) {
      e3.printStackTrace();
    }
    return null;
  }

Tomcat:3DES解密时中文乱码

标签:div   public   解密   中文乱码   print   final   hpa   运行时   padding   

原文地址:https://www.cnblogs.com/huiy/p/10298044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!