Java服務端和安卓用戶端對訊息的加密

來源:互聯網
上載者:User

標籤:

import java.security.SecureRandom; import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec; import org.apache.commons.codec.binary.Base64;import org.apache.commons.codec.binary.StringUtils; /** * 用戶端與伺服器通訊時對訊息體加密和解密的工具類 * @author LIUTAO * */public class DESBase64Util {     /**     * 密碼長度必須是8的倍數     */    public final static String KEY = "RS35836780805258";     /**     * 加密方式     */    public final static String DES = "DES";     /**     * 預設編碼     */    public final static String ENCODING = "UTF-8";     /**     * DES加密     *      * @param src     * @param key     * @return     * @throws Exception     */    public static byte[] encrypt(byte[] src, byte[] key) throws Exception {        // DES演算法要求有一個可信任的隨機數源        SecureRandom sr = new SecureRandom();        // 從原始密匙資料建立DESKeySpec對象        DESKeySpec dks = new DESKeySpec(key);        // 建立一個密匙工廠,然後用它把DESKeySpec轉換成一個SecretKey對象        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);        SecretKey securekey = keyFactory.generateSecret(dks);        // Cipher對象實際完成加密操作        Cipher cipher = Cipher.getInstance(DES);        // 用密匙初始化Cipher對象        cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);        // 現在,擷取資料並加密        // 正式執行加密操作        return cipher.doFinal(src);    }     /**     * DES解密     *      * @param src     * @param key     * @return     * @throws Exception     */    public static byte[] decrypt(byte[] src, byte[] key) throws Exception {        // DES演算法要求有一個可信任的隨機數源        SecureRandom sr = new SecureRandom();        // 從原始密匙資料建立一個DESKeySpec對象        DESKeySpec dks = new DESKeySpec(key);        // 建立一個密匙工廠,然後用它把DESKeySpec對象轉換成        // 一個SecretKey對象        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);        SecretKey securekey = keyFactory.generateSecret(dks);        // Cipher對象實際完成解密操作        Cipher cipher = Cipher.getInstance(DES);        // 用密匙初始化Cipher對象        cipher.init(Cipher.DECRYPT_MODE, securekey, sr);        // 現在,擷取資料並解密        // 正式執行解密操作        return cipher.doFinal(src);    }     /**     * BASE64編碼     *      * @param info     * @return     */    public static String base64Encode(byte[] info) {        return Base64.encodeBase64String(info);    }     /**     * BASE64解碼     *   *      * @param info     * @return     */    public static byte[] base64Decode(String info) {        return Base64.decodeBase64(info);    }     /**     * 先對訊息體進行DES編碼再進行BASE64編碼     * @param info     * @return     */    public static String encodeInfo(String info) {        try {            byte[] temp = encrypt(info.getBytes(ENCODING),                    KEY.getBytes(ENCODING));            return base64Encode(temp);        } catch (Exception e) {            e.printStackTrace();        }        return "";    }    /**     * 先對訊息體進行BASE64解碼再進行DES解碼     * @param info     * @return     */    public static String decodeInfo(String info) {        byte[] temp = base64Decode(info);        try {            byte[] buf = decrypt(temp,                    KEY.getBytes(ENCODING));            return StringUtils.newStringUtf8(buf);        } catch (Exception e) {            e.printStackTrace();        }        return "";    }     public static void main(String[] args) {        String info = "我是中國人,我愛祖國這是測試資料無所設定無所設定";        //產生密文        String encodeInfo = encodeInfo(info);               System.out.println(encodeInfo);        //還原成原文        String decodeInfo = decodeInfo(encodeInfo);        System.out.println(decodeInfo);    }}

主要依賴包:commons-codec-1.8.jar

Java服務端和安卓用戶端對訊息的加密

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.