Эх сурвалжийг харах

更新RA Image 加密模块,该用RAUtilsLibrary里的加密
修复library 重复引动导致无法编译的错误
去掉RA Image Network 里作废的类。

Ray Zhang 7 жил өмнө
parent
commit
e35a7a5f2b

+ 4 - 4
ApexDrivers/raimage/build.gradle

@@ -30,10 +30,10 @@ dependencies {
     api 'com.android.support:support-v4:26.1.0'
     api 'com.android.support.constraint:constraint-layout:1.1.3'
     api 'com.android.support:recyclerview-v7:26.1.0'
-    implementation project(path: ':RAUtilsLibrary')
-    implementation files('/Users/macmini1/android project/ApexDrivers/RAUtilsLibrary/libs/core-2.3.0.jar')
-    implementation files('/Users/macmini1/android project/ApexDrivers/RAUtilsLibrary/libs/bcprov-jdk15on-157.jar')
-    implementation files('/Users/macmini1/android project/ApexDrivers/RAUtilsLibrary/libs/httpmime-4.1.1.jar')
+    api project(path: ':RAUtilsLibrary')
+    //    implementation files('libs/core-2.3.0.jar')
+    //    implementation files('libs/bcprov-jdk15on-157.jar')
+    //    implementation files('libs/httpmime-4.1.1.jar')
 }
 android {
     useLibrary 'org.apache.http.legacy'

BIN
ApexDrivers/raimage/libs/bcprov-jdk15on-157.jar


BIN
ApexDrivers/raimage/libs/core-2.3.0.jar


BIN
ApexDrivers/raimage/libs/httpmime-4.1.1.jar


+ 6 - 224
ApexDrivers/raimage/src/main/java/com/usai/util/AES.java

@@ -1,241 +1,23 @@
 package com.usai.util;
 
-import android.util.Base64;
-import android.util.Log;
+import com.usai.redant.rautils.utils.AESUtil;
 
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
+//import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.Key;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.Security;
-import java.util.Arrays;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-import static android.content.ContentValues.TAG;
-
-/**
- * Created by ray on 07/06/2017.
- * AES128 算法
- *
- * CBC 模式
- *
- * PKCS7Padding 填充模式
- *
- * CBC模式需要添加一个参数iv
- *
- * 介于java 不支持PKCS7Padding,只支持PKCS5Padding 但是PKCS7Padding 和 PKCS5Padding 没有什么区别
- * 要实现在java端用PKCS7Padding填充,需要用到bouncycastle组件来实现
+/*
+改用 RAUtilsLibrary 的 AESUtil类处理
  */
 
 public class AES {
-    // 算法名称
-    final static String KEY_ALGORITHM = "AES";
-    // 加解密算法/模式/填充方式
-    final static String algorithmStr = "AES/CBC/PKCS7Padding";
-    //
-//    private Key key;
-//    private Cipher cipher;
-//    boolean isInited = false;
-
-    static byte[] iv = new byte[16];//{ 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, 0x30, 0x38 };
-//    private static void init(byte[] keyBytes) {
-//
-//        // 如果密钥不足16位,那么就补足.  这个if 中的内容很重要
-//        int base = 16;
-//        if (keyBytes.length % base != 0) {
-//            int groups = keyBytes.length / base + (keyBytes.length % base != 0 ? 1 : 0);
-//            byte[] temp = new byte[groups * base];
-//            Arrays.fill(temp, (byte) 0);
-//            System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);
-//            keyBytes = temp;
-//        }
-//        // 初始化
-//        Security.addProvider(new BouncyCastleProvider());
-//        // 转化成JAVA的密钥格式
-//        key = new SecretKeySpec(keyBytes, KEY_ALGORITHM);
-//        try {
-//            // 初始化cipher
-//            cipher = Cipher.getInstance(algorithmStr, "BC");
-//        } catch (NoSuchAlgorithmException e) {
-//            // TODO Auto-generated catch block
-//            e.printStackTrace();
-//        } catch (NoSuchPaddingException e) {
-//            // TODO Auto-generated catch block
-//            e.printStackTrace();
-//        } catch (NoSuchProviderException e) {
-//            // TODO Auto-generated catch block
-//            e.printStackTrace();
-//        }
-//    }
-
-    private static String toHex(byte[] buf)
-    {
-        if (buf == null)
-            return "";
-        StringBuffer result = new StringBuffer(2 * buf.length);
-        for (int i = 0; i < buf.length; i++)
-        {
-            appendHex(result, buf[i]);
-        }
-        return result.toString();
-    }
-    private static void appendHex(StringBuffer sb, byte b)
-    {
-        sb.append(HEX.charAt((b >> 4) & 0x0f)).append(HEX.charAt(b & 0x0f));
-    }
-    private final static String HEX = "0123456789ABCDEF";
 
     public static String encrypt(String key,String content)
     {
-        byte[] result=encrypt(content.getBytes(),key.getBytes());
-        Log.d(TAG, "encrypt: "+toHex(result));
-        return Base64.encodeToString(result,Base64.DEFAULT);
+        return AESUtil.encrypt128(key,content);
     }
 
     public static String decrypt(String key,String content)
     {
-        byte[] buffer =Base64.decode(content, Base64.DEFAULT);
-
-        byte[] result = decrypt(buffer,key.getBytes());
-
-        return new String(result);
-    }
-
-    /**
-     * 加密方法
-     *
-     * @param content
-     *            要加密的字符串
-     * @param keyBytes
-     *            加密密钥
-     * @return
-     */
-    private static byte[] encrypt(byte[] content, byte[] keyBytes) {
-        byte[] encryptedText = null;
-//        init(keyBytes);
-
-     Key key;
-     Cipher cipher;
-        // 如果密钥不足16位,那么就补足.  这个if 中的内容很重要
-        int base = 16;
-        if (keyBytes.length % base != 0) {
-            int groups = keyBytes.length / base + (keyBytes.length % base != 0 ? 1 : 0);
-            byte[] temp = new byte[groups * base];
-            Arrays.fill(temp, (byte) 0);
-            System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);
-            keyBytes = temp;
-        }
-        // 初始化
-        Security.addProvider(new BouncyCastleProvider());
-        // 转化成JAVA的密钥格式
-        key = new SecretKeySpec(keyBytes, KEY_ALGORITHM);
-        try {
-            // 初始化cipher
-            cipher = Cipher.getInstance(algorithmStr, "BC");
-
-
-            cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv));
-            encryptedText = cipher.doFinal(content);
-
-        } catch (NoSuchAlgorithmException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (NoSuchPaddingException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (NoSuchProviderException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (BadPaddingException e) {
-            e.printStackTrace();
-        } catch (InvalidKeyException e) {
-            e.printStackTrace();
-        } catch (IllegalBlockSizeException e) {
-            e.printStackTrace();
-        } catch (InvalidAlgorithmParameterException e) {
-            e.printStackTrace();
-        }
-
-
-//        System.out.println("IV:" + new String(iv));
-//        try {
-//
-//        } catch (Exception e) {
-//            // TODO Auto-generated catch block
-//            e.printStackTrace();
-//        }
-        return encryptedText;
-    }
-    /**
-     * 解密方法
-     *
-     * @param encryptedData
-     *            要解密的字符串
-     * @param keyBytes
-     *            解密密钥
-     * @return
-     */
-    private static byte[] decrypt(byte[] encryptedData, byte[] keyBytes) {
-        byte[] encryptedText = null;
-//        init(keyBytes);
-
-        Key key;
-        Cipher cipher;
-                // 如果密钥不足16位,那么就补足.  这个if 中的内容很重要
-        int base = 16;
-        if (keyBytes.length % base != 0) {
-            int groups = keyBytes.length / base + (keyBytes.length % base != 0 ? 1 : 0);
-            byte[] temp = new byte[groups * base];
-            Arrays.fill(temp, (byte) 0);
-            System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);
-            keyBytes = temp;
-        }
-        // 初始化
-        Security.addProvider(new BouncyCastleProvider());
-        // 转化成JAVA的密钥格式
-        key = new SecretKeySpec(keyBytes, KEY_ALGORITHM);
-        try {
-            // 初始化cipher
-            cipher = Cipher.getInstance(algorithmStr, "BC");
-            cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv));
-            encryptedText = cipher.doFinal(encryptedData);
-        } catch (NoSuchAlgorithmException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (NoSuchPaddingException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (NoSuchProviderException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        } catch (BadPaddingException e) {
-            e.printStackTrace();
-        } catch (InvalidKeyException e) {
-            e.printStackTrace();
-        } catch (IllegalBlockSizeException e) {
-            e.printStackTrace();
-        } catch (InvalidAlgorithmParameterException e) {
-            e.printStackTrace();
-        }
-
-//        System.out.println("IV:" + new String(iv));
-//        try {
-//
-//        } catch (Exception e) {
-//            // TODO Auto-generated catch block
-//            e.printStackTrace();
-//        }
-
-        return encryptedText;
+        return AESUtil.decrypt128(key,content);
     }
 
 

+ 0 - 447
ApexDrivers/raimage/src/main/java/com/usai/util/Network.java

@@ -12,23 +12,13 @@ import android.util.Log;
 
 import com.usai.redant.raimage.RedAntApplication;
 
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
 import org.apache.http.HttpVersion;
 import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
 import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.ConnectTimeoutException;
-import org.apache.http.conn.HttpHostConnectException;
 import org.apache.http.conn.scheme.PlainSocketFactory;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
 import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.entity.mime.HttpMultipartMode;
-import org.apache.http.entity.mime.MultipartEntity;
-import org.apache.http.entity.mime.content.FileBody;
-import org.apache.http.entity.mime.content.StringBody;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
 import org.apache.http.params.BasicHttpParams;
@@ -54,10 +44,8 @@ import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.ProtocolException;
 import java.net.Socket;
-import java.net.SocketTimeoutException;
 import java.net.URL;
 import java.net.URLEncoder;
-import java.net.UnknownHostException;
 import java.security.KeyManagementException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -366,191 +354,6 @@ public class Network
 		}
 		return ret;
 
-	}
-	@Deprecated
-	public static String getJson_d(String url, Bundle parms)
-	{
-		String TAG = "net_dbg@GetJson";
-		Log.d(TAG, "entry");
-
-		// parms.putString("sessionid",
-		// ApexTrackingApplication.get_sessionid());
-
-		// if (true)
-		// return fakegetJson(url);
-		try
-		{
-			// BasicHttpParams httpParams = new BasicHttpParams();
-			// HttpConnectionParams.setConnectionTimeout(httpParams,
-			// REQUEST_TIMEOUT);
-			// HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT);
-			HttpClient client = getNewHttpClient();// new
-													// DefaultHttpClient(httpParams);
-			HttpPost post = new HttpPost(url);
-			MultipartEntity reqEntity = new MultipartEntity(
-					HttpMultipartMode.BROWSER_COMPATIBLE);
-
-			Set<String> keys = parms.keySet();
-			Log.d(TAG, "================parms============");
-			for (String key : keys)
-			{
-				if (key.contains("_file"))
-				{
-				}
-				else
-					reqEntity.addPart(key, new StringBody(parms.get(key)
-							.toString()));
-				Log.d(TAG, "key=" + key + "    val="
-						+ parms.get(key).toString());
-			}
-			Log.d(TAG, "================parms============");
-
-			post.setEntity(reqEntity);
-			HttpResponse response = client.execute(post);
-			int statucode = response.getStatusLine().getStatusCode();
-			if (statucode == HttpStatus.SC_OK)
-			{
-				HttpEntity resEntity = response.getEntity();
-				if (resEntity != null)
-				{
-					Log.d(TAG,
-							"Response: content len==>"
-									+ resEntity.getContentLength());
-					InputStream is = resEntity.getContent();
-					try
-					{
-
-						BufferedReader br = new BufferedReader(
-								new InputStreamReader(is, "utf-8"), 8);
-						StringBuilder sb = new StringBuilder();
-						String line = null;
-						while ((line = br.readLine()) != null)
-						{
-							sb.append(line + "\n");
-						}
-
-						Log.d(TAG, "Response: content begin");
-						Log.d(TAG, sb.toString());
-						Log.d(TAG, "Response: content end");
-
-						if (sb.length() <= 0)
-						{
-
-							return null;
-						}
-						return sb.toString();
-
-					}
-					catch (Exception e)
-					{
-						dbgUtil.fileLog(e.toString());
-						Log.e(TAG, e.toString());
-						return null;
-						// TODO: handle exception
-					}
-					finally
-					{
-						is.close();
-
-					}
-
-				}
-				else
-				{
-					/*
-					 * resEntity is null
-					 */
-					Log.d(TAG, "RESPONSE ENTITY IS NULL");
-					return null;
-				}
-
-			}
-			else
-			{
-				/*
-				 * Http error; out put error code;
-				 */
-				Log.d(TAG, "HTTP " + statucode);
-
-				HttpEntity resEntity = response.getEntity();
-				if (resEntity != null)
-				{
-
-					InputStream is = resEntity.getContent();
-					try
-					{
-
-						BufferedReader br = new BufferedReader(
-								new InputStreamReader(is, "utf-8"), 8);
-						StringBuilder sb = new StringBuilder();
-						String line = null;
-						while ((line = br.readLine()) != null)
-						{
-							sb.append(line + "\n");
-						}
-
-						Log.d(TAG, "Response: content begin");
-						Log.d(TAG, sb.toString());
-						Log.d(TAG, "Response: content end");
-						return null;
-					}
-					catch (Exception e)
-					{
-						dbgUtil.fileLog(e.toString());
-						Log.e(TAG, e.toString());
-						return null;
-						// TODO: handle exception
-					}
-					finally
-					{
-						is.close();
-
-					}
-
-				}
-				else
-				{
-					/*
-					 * resEntity is null
-					 */
-					Log.e(TAG, "RESPONSE ENTITY IS NULL");
-					return null;
-				}
-			}
-
-		}
-		catch (ConnectTimeoutException e)
-		{
-			Log.d(TAG, "request time out");
-			dbgUtil.fileLog(e.toString());
-			return null;
-
-		}
-		catch (SocketTimeoutException e)
-		{
-			Log.d(TAG, "socket time out");
-			dbgUtil.fileLog(e.toString());
-			return null;
-		}
-		catch (UnknownHostException e)
-		{
-			Log.d(TAG, e.toString());
-			dbgUtil.fileLog(e.toString());
-			return null;
-		}
-		catch (HttpHostConnectException e)
-		{
-			Log.d(TAG, e.toString());
-			dbgUtil.fileLog(e.toString());
-			return null;
-		}
-		catch (Exception e)
-		{
-			Log.d(TAG, e.toString());
-			dbgUtil.fileLog(e.toString());
-			return null;
-		}
-
 	}
 
 	public static boolean NetworkIsAvailable()// Context context)
@@ -1305,257 +1108,7 @@ public class Network
 		void onFinish(int code, String res/*, HashMap<String, List<String>> headers*/);
 	}
 
-	@Deprecated
-	public static int UploadFiled(String path, String user, String password,
-			String pid,String server)
-	{
-		String TAG = "net_dbg@UploadFile";
-		Log.d(TAG, "entry");
-
-		Log.d(TAG, "sourcefile:" + path);
-		File file = new File(path);
-
-		if (file.exists() == false)
-		{
-			dbgUtil.fileLog("file "+ path +" not found!");
-			return RESULT_LOCALFILE_ERROR;
-		}
-		String md5 = MD5.md5sum(path);
-		Log.d(TAG, "MD5:" + md5);
-		if (md5 == null)
-		{
-			Log.d(TAG, "md5 sum failed");
-			dbgUtil.fileLog("md5 sum failed");
-			return RESULT_LOCALFILE_ERROR;
-
-		}
-		try
-		{
-			BasicHttpParams httpParams = new BasicHttpParams();
-			HttpConnectionParams.setConnectionTimeout(httpParams,
-					REQUEST_TIMEOUT);
-			HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT);
-			HttpClient client = new DefaultHttpClient(httpParams);
-			HttpPost post = new HttpPost(server
-					+ URL_UPLOAD_PHOTO);
-			MultipartEntity reqEntity = new MultipartEntity(
-					HttpMultipartMode.BROWSER_COMPATIBLE);
-			reqEntity.addPart("user", new StringBody(user));
-			reqEntity.addPart("password", new StringBody(password));
-			reqEntity.addPart("pid", new StringBody(pid));
-			reqEntity.addPart("md5", new StringBody(md5));
-
-			FileBody bin = new FileBody(file);
-			reqEntity.addPart("imagefile", bin);
-			post.setEntity(reqEntity);
-			HttpResponse response = client.execute(post);
-			int statucode = response.getStatusLine().getStatusCode();
-			if (statucode == HttpStatus.SC_OK)
-			{
-				HttpEntity resEntity = response.getEntity();
-				if (resEntity != null)
-				{
-					Log.d(TAG,
-							"Response: content len==>"
-									+ resEntity.getContentLength());
-					InputStream is = resEntity.getContent();
-					try
-					{
-
-						BufferedReader br = new BufferedReader(
-								new InputStreamReader(is, "utf-8"), 8);
-						StringBuilder sb = new StringBuilder();
-						String line = null;
-						while ((line = br.readLine()) != null)
-						{
-							sb.append(line + "\n");
-						}
-
-						Log.d(TAG, "Response: content begin");
-						Log.d(TAG, sb.toString());
-						Log.d(TAG, "Response: content end");
-
-						if (sb.length() <= 0)
-						{
-
-							return RESULT_NET_ERROR;
-						}
-						JSONObject obj = new JSONObject(sb.toString());
-						if (obj.length() > 0)
-						{
-							// JSONObject obj = array.getJSONObject(0);
-							try
-							{
-								int uploadresult = Integer.parseInt(obj
-										.getString("result"));
-								if (uploadresult == Network.AP_UPLOAD_SUCCESS)
-								{
-									return RESULT_TRUE;
-								}
-								else if (uploadresult == Network.AP_USER_NOT_AUTH)
-								{
-									Log.d(TAG, "RESULT_ERR_USERAUTH");
-									return RESULT_USERAUTH_ERROR;
-								}
-								else
-								{
-									return RESULT_FALSE;
-								}
-							}
-							catch (Exception e)
-							{
-								Log.e(TAG, e.toString()+1);
-								dbgUtil.fileLog(e.toString());
-								return RESULT_FALSE;
-							}
-						}
-					}
-					catch (Exception e)
-					{
-						Log.e(TAG, e.toString());
-						dbgUtil.fileLog(e.toString());
-						return RESULT_NET_ERROR;
-						// TODO: handle exception
-					}
-					finally
-					{
-						is.close();
-
-					}
 
-				}
-				else
-				{
-					/*
-					 * resEntity is null
-					 */
-					Log.d(TAG, "RESPONSE ENTITY IS NULL");
-					return RESULT_NET_ERROR;
-				}
-
-			}
-			else
-			{
-				/*
-				 * Http error; out put error code;
-				 */
-				Log.d(TAG, "HTTP " + statucode);
-
-				HttpEntity resEntity = response.getEntity();
-				if (resEntity != null)
-				{
-
-					InputStream is = resEntity.getContent();
-					try
-					{
-
-						BufferedReader br = new BufferedReader(
-								new InputStreamReader(is, "utf-8"), 8);
-						StringBuilder sb = new StringBuilder();
-						String line = null;
-						while ((line = br.readLine()) != null)
-						{
-							sb.append(line + "\n");
-						}
-
-						Log.d(TAG, "Response: content begin");
-						Log.d(TAG, sb.toString());
-						Log.d(TAG, "Response: content end");
-						return RESULT_NET_ERROR;
-					}
-					catch (Exception e)
-					{
-						Log.e(TAG, e.toString());
-						dbgUtil.fileLog(e.toString());
-						return RESULT_NET_ERROR;
-						
-						// TODO: handle exception
-					}
-					finally
-					{
-						is.close();
-
-					}
-
-				}
-				else
-				{
-					/*
-					 * resEntity is null
-					 */
-					Log.e(TAG, "RESPONSE ENTITY IS NULL");
-					return RESULT_NET_ERROR;
-				}
-			}
-
-		}
-		catch (ConnectTimeoutException e)
-		{
-			Log.d(TAG, "request time out");
-			dbgUtil.fileLog(e.toString());
-			return RESULT_NET_ERROR;
-
-		}
-		catch (SocketTimeoutException e)
-		{
-			Log.d(TAG, "socket time out");
-			dbgUtil.fileLog(e.toString());
-			return RESULT_NET_ERROR;
-		}
-		catch (UnknownHostException e)
-		{
-			Log.d(TAG, e.toString());
-			dbgUtil.fileLog(e.toString());
-			return RESULT_NET_ERROR;
-		}
-		catch (HttpHostConnectException e)
-		{
-			Log.d(TAG, e.toString());
-			dbgUtil.fileLog(e.toString());
-			return RESULT_NET_ERROR;
-		}
-		catch (Exception e)
-		{
-			Log.d(TAG, e.toString()+" RESULT_ERROR!!");
-			dbgUtil.fileLog(e.toString());
-			return RESULT_ERROR;
-		}
-
-		return RESULT_FALSE;
-
-		// try
-		// {
-		// HttpClient client = new DefaultHttpClient();
-		// HttpPost post = new HttpPost(url);
-		// MultipartEntity reqEntity = new MultipartEntity(
-		// HttpMultipartMode.BROWSER_COMPATIBLE);
-		// reqEntity.addPart("user", new StringBody(user));
-		// reqEntity.addPart("password", new StringBody(password));
-		// reqEntity.addPart("pid", new StringBody(pid));
-		// FileBody bin = new FileBody(file);
-		// reqEntity.addPart("imagefile", bin);
-		// post.setEntity(reqEntity);
-		// HttpResponse response = client.execute(post);
-		// HttpEntity resEntity = response.getEntity();
-		// if (resEntity != null)
-		// {
-		//
-		// String result = EntityUtils.toString(resEntity);
-		// Log.d(TAG, "Response:" + result);
-		// return Integer.parseInt(result);
-		// // if(Boolean.parseBoolean(result)==true)
-		// // return true;
-		// // else
-		// // return false;
-		// }
-		//
-		// }
-		// catch (Exception e)
-		// {
-		// e.printStackTrace();
-		// }
-		// return 0;
-	}
 
 	public static boolean NetworkIsAvailable(Context context)
 	{