Android簡單加密網絡數據

wdfd 9年前發布 | 2K 次閱讀 Java Android

原理:

最簡單的數據加密就是采用Base64,雖然會帶有數據冗余,但是寫法簡單,不用做過多的修改,其實也可以采用異或加密。

代碼:

這里就直接上代碼吧,寫法很簡單。
    public static final boolean DownlaodAppFile(Context mContext, String url, String cacheName, boolean replace) {  
            File root = mContext.getExternalCacheDir();  
            if (!root.exists()) {  
                root.mkdir();  
            }  
            String root_path = root.getAbsolutePath();  
            File cacheFile = new File(root_path + "/" + cacheName);  
            if (cacheFile.exists()) {  
                if (!replace) {  
                    return true;  
                }  
            }  
            File tmpFIle = new File(root_path + "/" + cacheName + ".tmp");  

            URL mURL = null;  
            try {  
                mURL = new URL(url);  
            } catch (MalformedURLException e) {  
                Log.i("Finals", "URL error");  
                e.printStackTrace();  
                return false;  
            }  

            HttpURLConnection conn = null;  
            FileOutputStream fos = null;  
            Base64OutputStream bos = null;  
            try {  
                fos = new FileOutputStream(tmpFIle);  
                bos = new Base64OutputStream(fos, 45);  

                conn = (HttpURLConnection) mURL.openConnection();  
                if (conn.getResponseCode() == 200) {  

                    // 創建連接  
                    InputStream is = conn.getInputStream();  
                    byte[] buffer = new byte[1024];  

                    // 循環獲取數據  
                    int len = 0;  
                    while ((len = is.read(buffer)) != -1) {  
                        bos.write(buffer, 0, len);  
                    }  

                    // 釋放資源  
                    bos.close();  
                    fos.close();  
                    is.close();  
                    conn.disconnect();  

                    bos = null;  
                    fos = null;  
                    is = null;  
                    conn = null;  
                    tmpFIle.renameTo(cacheFile);  
                    System.out.println("下載完成");  
                }  
            } catch (IOException e) {  
                e.printStackTrace();  
                Log.i("Finals", "Url connection error");  
                return false;  
            } finally {  
                if (fos != null) {  
                    try {  
                        fos.close();  
                    } catch (IOException e) {  
                        e.printStackTrace();  
                    }  
                }  
            }  
            return true;  
        }  

        public static final String ReadAppFile(Context context, String cacheName) {  
            File root = context.getExternalCacheDir();  
            String rootpath = root.getAbsolutePath();  
            File cacheFile = new File(rootpath + "/" + cacheName);  
            if (!cacheFile.exists()) {  
                return "";  
            }  
            String result = "";  
            try {  
                FileInputStream fis = new FileInputStream(cacheFile);  
                Base64InputStream bis = new Base64InputStream(fis, 45);  
                ByteArrayOutputStream bos = new ByteArrayOutputStream();  
                byte[] buffer = new byte[512];  
                int len = 0;  
                while ((len = bis.read(buffer)) != -1) {  
                    bos.write(buffer, 0, len);  
                }  
                result = bos.toString();  
                bos.close();  
                bis.close();  
                fis.close();  
                bos = null;  
                bis = null;  
                fis = null;  

            } catch (IOException e) {  
                e.printStackTrace();  
                return "";  
            }  
            return result;  
        }  

 本文由用戶 wdfd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!