• 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;
      }
  • 相关阅读:
    POJ 1548 Robots(最小路径覆盖)
    <html>
    站点开发-日志-1
    JSP入门实战下
    rancher官方资源
    window10死机
    window10桌面图标空白
    sentry使用docker-compose部署
    docker下一步步部署sentry
    docker-compose编排服务
  • 原文地址:https://www.cnblogs.com/huiy/p/10298044.html
Copyright © 2020-2023  润新知