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;
  }

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

时间: 2024-08-29 17:39:25

Tomcat:3DES解密时中文乱码的相关文章

get/post时中文乱码问题的解决办法

常有的方法,get请求用在tomcat的编码改为utf-8 即可 post 过滤器就可以 一.常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码: 3.getBytes() 是通过平台默认字符集进行编码: 二.中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置:而在Servlet中

关于Android与pc通信时中文乱码的分析和解决

初步实现了Android与pc服务器的通信之后,又碰到了传说中令人头疼不已的中文乱码问题.既然出现了乱码,那么原因自然是协议不通了.我们知道eclipse中默认的编码标准是GBK,而安卓程序开发所默认的布局文件编码标准则是utf-8,这样一来,我们双方通信的时候便难免出现乱码.要解决它,就要从二者转换方面着手.     首先我们知道,从安卓手机界面上获得的文字,其编码字符集是utf-8,所以,当我们的java文件获得它时,它是以utf-8形式编译的.所以这里,在得到EditText中的文字之后,

maven测试时中文乱码问题解决方法

pom.xml增加-Dfile.encoding=UTF-8配置,如下: 1 <plugin> 2 <!--升级到新版本解决控制台乱码问题--> 3 <groupId>org.apache.maven.plugins</groupId> 4 <artifactId>maven-surefire-plugin</artifactId> 5 <version>2.19.1</version> 6 <confi

SpringMVC 解决GET请求时中文乱码的问题

<filter>        <filter-name>CharacterEncoding</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param

工作积累(七)——Tomcat URIEncoding引起的中文乱码问题

在 J2EE 中用到了中文搜索,在后台接到的前台数据中出现了乱码,采用如下方式进行转码: try {   keyword = new String(cond.getKeyword().getBytes("iso-8859-1"),"utf-8"); } catch(UnsupportedEncodingException ex) {   ex.printStackTrace(); } 这样在本地部署测试时解决了中文乱码导致的查询失败问题,然而当将项目部署到测试服务器

tomcat+SSH中遇到中文乱码的解决方法

最近开始又转向J2EE的开发.很久没用,重新熟悉. 本地环境ubuntu 12.13,mysql5.x,tomcat7.x,struts2.3.15.x,spring3.1.0,hibernate4.1.x 之前一直连线上服务器上测试数据库,没有发现有中文乱码问题. 现在在本地搭建此环境,使用本地数据库,便于调试,但是发现每次对数据库操作,有中文就会出现????乱码. 那现在一步步排除什么原因引起: 前端jsp或者html界面: 对于在页面中显示出现乱码,这个问题比较简单,便是检查你的JSP文件

使用SpringMVC参数传递时,解决get请求时中文乱码的问题

问题描述: 使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码. 解决办法: 一,  我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流,代码如下: String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8"

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

相信很多朋友都会遇到android studio 在MAC OS中运行的时候中文乱码.而在代码编辑的时候正常.经过几天的不断寻找解决办法,终于解决了 比如: Toast.makeText(MainActivity.this,"我爱你", Toast.LENGTH_LONG).show(); 运行的时候在模拟器里就是乱码. 解决办法网上很多,但是都不能解决运行时乱码的问题.所以这个问题苦恼了几天. 我们在工程里的build.grandle 文件中添加一段代码即可 tasks.withTy

springmvc 4.x 处理json 数据时中文乱码

原因: springmvc在处理请求时,默认采用的是 ISO-8859-1 编码格式,具体原因不了解,个人觉得是还没有来得及更改,所以在处理一些json格式的时候,会出现中文乱码. org.springframework.http.converter.StringHttpMessageConverter类是处理请求或相应字符串的类,并且默认字符集为ISO-8859-1,所以在当返回json中有中文时会出现乱码. 解决办法,只需在配置文件中加入如下代码: <!-- 处理请求时返回json字符串的中