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


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。