Tomcat:3DES解密时中文乱码

Posted 小溪(潺潺流水,润泽千里)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat:3DES解密时中文乱码相关的知识,希望对你有一定的参考价值。

情况说明:直接用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解密时中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

js中加密解密时中文符号乱码

通过TomCat获取html文件时中文乱码

Python:mac下解决绘图时中文乱码问题

python:mac下解决绘图时中文乱码问题

如何解决android studio 运行时中文乱码的问题

PHP向MySQL插入记录时中文乱码