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