網路上DesUtil.java關於漢字加密解密出現亂碼的問題

來源:互聯網
上載者:User
代碼來自以下連結
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"的位置。

希望大夥沒有遇到這個問題。


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.