代码来自以下链接

http://www.oschina.net/code/piece_full?code=18383#30455

首先声明的是,代码不是本人写的,感谢一下作者,只不过本人在做一个android客户端,与服务器servlet接口通信的项目时,对协议作了des+base64加密处理,使用了该类,

期间遇到了一个比较纠结的问题,就是如果汉字存在于协议中,服务器加密,客户端解密会出现乱码,客户端加密,服务器解密亦然。

以上问题的解决其实很简单,只不过找问题原因的过程有点浪费时间,所以记录在此,以告知其他有缘也用到该类的朋友,能够节省一点宝贵的时间。

修改代码如下:

/**

* Description 根据键值进行加密

*

* @param data

* @param key

* 加密键byte数组

* @return

* @throws Exception

*/

public static String encrypt(String data, String key) throws Exception {

byte[] bt = encrypt(data.getBytes("UTF-8"), key.getBytes());

String strs = new BASE64Encoder().encode(bt);

return strs;

}

/**

* Description 根据键值进行解密

*

* @param data

* @param key

* 加密键byte数组

* @return

* @throws IOException

* @throws Exception

*/

public static String decrypt(String data, String key) throws IOException,

Exception {

if (data == null)

return null;

BASE64Decoder decoder = new BASE64Decoder();

byte[] buf = decoder.decodeBuffer(data);

byte[] bt = decrypt(buf,key.getBytes());

return new String(bt, "UTF-8");

}

请留意,修改的两处为"UTF-8"的位置。

希望大伙没有遇到这个问题。

java des 中文乱码_网络上DesUtil.java关于汉字加密解密出现乱码的问题相关推荐

  1. java 中文乱码_好程序员Java学习路线分享如何处理中文参数

    好程序员Java学习路线分享如何处理中文参数,为什么表单中会产生中文乱码. 好程序员Java培训 产生乱码,就是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个 ...

  2. JAVA开发面试题_网络_操作系统_JAVA基础_JVM虚拟机

    目录 网络篇 OSI七层模型与TCP/IP 五层模型 常见应用层协议和运输层.网络层协议,以及硬件如路由器之类在哪一层 TCP与UDP区别和应用场景,基于TCP的协议有哪些,基于UDP的有哪些 TCP ...

  3. 网络研讨室_网络研讨会:Java 9的第一印象–构建可伸缩企业应用程序的新方法...

    网络研讨室 在此网络研讨会上听我们对新Java版本的一些初步想法 关于Java 9的新版本,有很多宣传.将Java平台迁移到模块上,由Mark Reinhold领导的专门团队进行了近十年的艰苦工作. ...

  4. q87主板支持cpu型号_网络上那些300多元的微星B365M主板到底是真货假货?价格便宜一半...

    好吧,最近没啥实质性的研究成果,所以又开始水文章了. 本次的主角依然是微星, 型号是B365M-火箭筒. 下面来讲讲它的故事....... 一,微星官方都不存在的型号,为何频繁出现? 入手途径就不多说 ...

  5. 指针和指针的指针_网络上的iPad指针

    指针和指针的指针 a week ago I saw a new IPad Pointer presentation and was very excited about what they did. ...

  6. java access 不在本地_线上的java项目访问不到线上数据库,但是这个数据库我本地可以连接到,求解...

    java.lang.Exception: 数据库连接失败:Cannot create PoolableConnectionFactory (Server connection failure duri ...

  7. java 8 中文字体_在java程序中直接使用中文字体文件

    在java程序中直接使用中文字体文件.代码中的hb.ttf文件请用你自己的中文字体文件代替 java学习 java培训 软件工程师 如何学习java 学习java哪里好 东方清软java培训 清软国际 ...

  8. 程序封装真的是令人讨厌_网络上最令人讨厌的黑暗模式

    程序封装真的是令人讨厌 This article is part of a series created in partnership with SiteGround. Thank you for s ...

  9. 学习java的中文网站_学习java的网站有哪些

    1.Stack overflow Stack可能是编程界中非常流行的网站了 , 是一个与程序相关的 IT 技术问答网站,用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的 ...

最新文章

  1. 异或交换值(有趣点)
  2. 如何科学高效的学习Web前端开发?
  3. websocket使用
  4. JVM对象占用内存计算
  5. 为什么Python中称__lt__、__gt__等为“富比较”方法
  6. 关于在 matlab 中使用 ode45 算出拉格朗日方程中的关节加速度
  7. android system.out.println,为什么“System.out.println”在Android中不起作用?
  8. oracle 两表关联查询
  9. python 实现文字识别提取
  10. 微博热搜榜html源码,几行代码完成微博热搜榜爬虫
  11. H3C-2620AP配置日志
  12. Matlab建模—回归拟合(ployfit与regress使用)
  13. linux通过iphone usb上网,Ubuntu下iphone拖电脑上网
  14. 拼多多店铺商品被下架了?凶手可能藏这儿!
  15. matlab 生成Blocks和Heavysine等典型非线性非平稳信号代码
  16. vux微信签名拿openid设计
  17. 简报 | 井通公链实现商业应用真实用户数突破百万
  18. 分析快、易操作的数据分析工具推荐
  19. mysql报错 is longer than the server configured value of ‘wait_timeout‘
  20. redis秒杀代码案例

热门文章

  1. 如何在博客园中自定义背景
  2. Element表格内容不垂直居中和内容换行显示
  3. 微信不提示ipad登陆不上服务器,微信退出登录后,重新登录不了ipad
  4. SMARTS 动态问卷
  5. SAP FI会计科目主数据
  6. 程序员兼职接私活平台大全,兼职也能月薪上万!
  7. gitee基本使用方法(Tortoisegit)
  8. QTableWidget中如何清空行,并保持行仍可再写入数据
  9. idea热部署插件JRebel激活(强烈推荐,试试就离不开了)
  10. matlab石碑提取,罗塞塔石碑-高尔夫代码:Tic Tac T