From 7f48af50ef768162c5118d93598cd1300b4cb174 Mon Sep 17 00:00:00 2001
From: cmj <625783482@qq.com>
Date: Fri, 5 Aug 2016 12:30:54 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=AF=86=E6=96=B0=E5=A2=9EMD5?=
=?UTF-8?q?=E7=9B=90=E5=8A=A0=E5=AF=86=EF=BC=8C=E5=AE=8C=E5=96=84NetworkUt?=
=?UTF-8?q?ils?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 10 +-
about_encrypt.md | 209 ++++++++++--------
about_network.md | 205 +++++++++++------
.../androidframework/utils/EncryptUtils.java | 144 ++++++------
.../androidframework/utils/NetworkUtils.java | 2 +-
update_log.md | 3 +-
6 files changed, 332 insertions(+), 241 deletions(-)
diff --git a/README.md b/README.md
index f87f11e8..17e21897 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Android开发人员不得不收集的代码(不断更新)
+# Android开发人员不得不收集的代码(持续更新中)
为方便查找,已进行大致归类,其目录如下所示:
> - [App相关](https://github.com/Blankj/AndroidUtilCode/blob/master/about_app.md)→[AppUtils.java](https://github.com/Blankj/AndroidUtilCode/blob/master/androidframework/src/main/java/com/blankj/androidframework/utils/AppUtils.java)
> - 安装指定路径下的Apk *installApp*
@@ -30,12 +30,13 @@
> - [网络相关](https://github.com/Blankj/AndroidUtilCode/blob/master/about_network.md)→[NetworkUtils.java](https://github.com/Blankj/AndroidUtilCode/blob/master/androidframework/src/main/java/com/blankj/androidframework/utils/NetworkUtils.java)
> - 打开网络设置界面 *openWirelessSettings*
-> - 判断是否网络连接 *isConnected*
+> - 判断网络是否可用 *isAvailable*
+> - 判断网络是否连接 *isConnected*
+> - 判断网络是否是4G *is4G*
> - 判断wifi是否连接状态 *isWifiConnected*
> - 获取移动网络运营商名称 *getNetworkOperatorName*
> - 获取移动终端类型 *getPhoneType*
-> - 获取连接的网络类型(2G,3G,4G) *getCurNetworkType*
-> - 获取当前手机的网络类型(WIFI,2G,3G,4G) *getNetWorkStatus*
+> - 获取当前的网络类型(WIFI,2G,3G,4G) *getNetWorkType* *getNetWorkTypeName*
> - [手机相关](https://github.com/Blankj/AndroidUtilCode/blob/master/about_phone.md)→[PhoneUtils.java](https://github.com/Blankj/AndroidUtilCode/blob/master/androidframework/src/main/java/com/blankj/androidframework/utils/PhoneUtils.java)
> - 判断设备是否是手机 *isPhone*
@@ -99,6 +100,7 @@
#### 2016/08/02 新增隐藏状态栏,注释更加全面,工具类已封装,写的时候真的是一个一个测试过去的,宝宝心里苦
#### 2016/08/03 修复在onCreate中获取view尺寸的bug,MD5和SHA的Bug修复完成(在此感谢ssyijiu)
#### 2016/08/04 新增时间工具类(在此感谢yi520000给的补充),手机正则分简单和精确(在此感谢MIkeeJY),新增判断是否锁屏,注释使用
分段落,目录按首字母排序
+#### 2016/08/05 加密新增MD5盐加密,完善NetworkUtils
##[关于Blankj](http://blankj.com/about)
\ No newline at end of file
diff --git a/about_encrypt.md b/about_encrypt.md
index c4cd3d5b..ab1d1cb3 100644
--- a/about_encrypt.md
+++ b/about_encrypt.md
@@ -2,87 +2,91 @@
### MD5加密
``` java
/**
-* 一个byte转为2个hex字符
-*/
-public static String bytes2Hex(byte[] src) {
- char[] res = new char[src.length * 2];
- final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
- for (int i = 0, j = 0; i < src.length; i++) {
- res[j++] = hexDigits[src[i] >>> 4 & 0x0f];
- res[j++] = hexDigits[src[i] & 0x0f];
- }
- return new String(res);
+ * MD5加密
+ *
+ * @param data 明文字符串
+ * @return 密文
+ */
+public static String getMD5(String data) {
+ return getMD5(data.getBytes());
}
/**
-* MD5加密
-*
-* @param data 明文
-* @return 密文
-*/
-public static String getMD5(String data) {
- return TextUtils.isEmpty(data) ? "" : getMD5(data.getBytes());
+ * MD5加密
+ *
+ * @param data 明文字符串
+ * @param salt 盐
+ * @return 密文
+ */
+public static String getMD5(String data, String salt) {
+ return bytes2Hex(encryptMD5((data + salt).getBytes()));
}
-
+
/**
-* MD5加密
-*
-* @param data 明文字节数组
-* @return 密文
-*/
+ * MD5加密
+ *
+ * @param data 明文字节数组
+ * @return 密文
+ */
public static String getMD5(byte[] data) {
- if (data.length > 0) {
- return bytes2Hex(encryptMD5(data));
- }
- return "";
+ return bytes2Hex(encryptMD5(data));
}
-
+
/**
-* MD5加密
-*
-* @param data 明文字节数组
-* @return 密文字节数组
-*/
+ * MD5加密
+ *
+ * @param data 明文字节数组
+ * @param salt 盐字节数组
+ * @return 密文
+ */
+public static String getMD5(byte[] data, byte[] salt) {
+ byte[] dataSalt = new byte[data.length + salt.length];
+ System.arraycopy(data, 0, dataSalt, 0, data.length);
+ System.arraycopy(salt, 0, dataSalt, data.length, salt.length);
+ return bytes2Hex(encryptMD5(dataSalt));
+}
+
+/**
+ * MD5加密
+ *
+ * @param data 明文字节数组
+ * @return 密文字节数组
+ */
public static byte[] encryptMD5(byte[] data) {
- if (data.length > 0) {
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- md.update(data);
- return md.digest();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(data);
+ return md.digest();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
}
- return null;
+ return new byte[0];
}
-
-
+
/**
-* 获取文件的MD5校验码
-*
-* @param filePath 文件路径
-* @return 文件的MD5校验码
-*/
+ * 获取文件的MD5校验码
+ *
+ * @param filePath 文件路径
+ * @return 文件的MD5校验码
+ */
public static String getMD5File(String filePath) {
- if (!TextUtils.isEmpty(filePath)) {
- FileInputStream in = null;
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- in = new FileInputStream(filePath);
- int len;
- byte[] buffer = new byte[1024];
- while ((len = in.read(buffer)) != -1) {
- md.update(buffer, 0, len);
- }
- return bytes2Hex(md.digest());
- } catch (NoSuchAlgorithmException | IOException e) {
- e.printStackTrace();
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException ignored) {
- }
+ FileInputStream in = null;
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ in = new FileInputStream(filePath);
+ int len;
+ byte[] buffer = new byte[1024];
+ while ((len = in.read(buffer)) != -1) {
+ md.update(buffer, 0, len);
+ }
+ return bytes2Hex(md.digest());
+ } catch (NoSuchAlgorithmException | IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ignored) {
}
}
}
@@ -93,43 +97,52 @@ public static String getMD5File(String filePath) {
### SHA加密
```
/**
-* SHA加密
-*
-* @param data 明文
-* @return 密文
-*/
+ * SHA加密
+ *
+ * @param data 明文字符串
+ * @return 密文
+ */
public static String getSHA(String data) {
- return TextUtils.isEmpty(data) ? "" : getSHA(data.getBytes());
+ return getSHA(data.getBytes());
}
-
+
/**
-* SHA加密
-*
-* @param data 明文字节数组
-* @return 密文
-*/
+ * SHA加密
+ *
+ * @param data 明文字节数组
+ * @return 密文
+ */
public static String getSHA(byte[] data) {
- if (data.length > 0) {
- return bytes2Hex(encryptSHA(data));
- }
- return "";
+ return bytes2Hex(encryptSHA(data));
}
-
+
/**
-* SHA加密
-* @param data 明文字节数组
-* @return 密文字节数组
-*/
+ * SHA加密
+ *
+ * @param data 明文字节数组
+ * @return 密文字节数组
+ */
public static byte[] encryptSHA(byte[] data) {
- if (data.length > 0) {
- try {
- MessageDigest md = MessageDigest.getInstance("SHA");
- md.update(data);
- return md.digest();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
+ try {
+ MessageDigest md = MessageDigest.getInstance("SHA");
+ md.update(data);
+ return md.digest();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return new byte[0];
+}
+
+/**
+ * 一个byte转为2个hex字符
+ */
+public static String bytes2Hex(byte[] src) {
+ char[] res = new char[src.length * 2];
+ final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+ for (int i = 0, j = 0; i < src.length; i++) {
+ res[j++] = hexDigits[src[i] >>> 4 & 0x0f];
+ res[j++] = hexDigits[src[i] & 0x0f];
}
- return null;
+ return new String(res);
}
```
diff --git a/about_network.md b/about_network.md
index f0d7bf27..547ac05b 100644
--- a/about_network.md
+++ b/about_network.md
@@ -14,20 +14,51 @@ public static void openWirelessSettings(Context context) {
}
```
-### 判断是否网络连接
+### 判断网络是否可用
``` java
/**
- * 判断是否网络连接
+ * 获取活动网路信息
+ */
+private static NetworkInfo getActiveNetworkInfo(Context context) {
+ ConnectivityManager cm = (ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ return cm.getActiveNetworkInfo();
+}
+
+/**
+ * 判断网络是否可用
+ *
需添加权限
+ */
+public static boolean isAvailable(Context context) {
+ NetworkInfo info = getActiveNetworkInfo(context);
+ return info != null && info.isAvailable();
+}
+```
+
+### 判断网络是否连接
+``` java
+/**
+ * 判断网络是否连接
*
需添加权限
*/
public static boolean isConnected(Context context) {
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Activity.CONNECTIVITY_SERVICE);
- NetworkInfo info = cm.getActiveNetworkInfo();
+ NetworkInfo info = getActiveNetworkInfo(context);
return info != null && info.isConnected();
}
```
+### 判断网络是否是4G
+``` java
+/**
+ * 判断网络是否是4G
+ *
需添加权限
+ */
+public static boolean is4G(Context context) {
+ NetworkInfo info = getActiveNetworkInfo(context);
+ return info != null && info.isAvailable() && info.getSubtype() == TelephonyManager.NETWORK_TYPE_LTE;
+}
+```
+
### 判断wifi是否连接状态
``` java
/**
@@ -58,12 +89,14 @@ public static String getNetworkOperatorName(Context context) {
``` java
/**
* 获取移动终端类型
- *
- * PHONE_TYPE_NONE : 0 手机制式未知
- * PHONE_TYPE_GSM : 1 手机制式为GSM,移动和联通
- * PHONE_TYPE_CDMA : 2 手机制式为CDMA,电信
- * PHONE_TYPE_SIP : 3
- *
+ *
+ * @return 手机制式
+ *
+ * - PHONE_TYPE_NONE : 0 手机制式未知
+ * - PHONE_TYPE_GSM : 1 手机制式为GSM,移动和联通
+ * - PHONE_TYPE_CDMA : 2 手机制式为CDMA,电信
+ * - PHONE_TYPE_SIP : 3
+ *
*/
public static int getPhoneType(Context context) {
TelephonyManager tm = (TelephonyManager) context
@@ -72,72 +105,106 @@ public static int getPhoneType(Context context) {
}
```
-### 获取连接的网络类型(2G,3G,4G)
+### 获取当前的网络类型(WIFI,2G,3G,4G)
``` java
/**
- * 获取连接的网络类型(2G,3G,4G)
- * 联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信的3G为EVDO
+ * 获取当前的网络类型(WIFI,2G,3G,4G)
+ *
需添加权限
+ *
+ * @return 网络类型
+ *
+ * - NETWORK_WIFI = 1;
+ * - NETWORK_4G = 4;
+ * - NETWORK_3G = 3;
+ * - NETWORK_2G = 2;
+ * - NETWORK_UNKNOWN = 5;
+ * - NETWORK_NO = -1;
+ *
*/
-public static int getNetTpye(Context context) {
- TelephonyManager telephonyManager = (TelephonyManager) context
- .getSystemService(Context.TELEPHONY_SERVICE);
- switch (telephonyManager.getNetworkType()) {
- case TelephonyManager.NETWORK_TYPE_GPRS:
- case TelephonyManager.NETWORK_TYPE_EDGE:
- case TelephonyManager.NETWORK_TYPE_CDMA:
- case TelephonyManager.NETWORK_TYPE_1xRTT:
- case TelephonyManager.NETWORK_TYPE_IDEN:
- return Constants.NETWORK_CLASS_2_G;
- case TelephonyManager.NETWORK_TYPE_UMTS:
- case TelephonyManager.NETWORK_TYPE_EVDO_0:
- case TelephonyManager.NETWORK_TYPE_EVDO_A:
- case TelephonyManager.NETWORK_TYPE_HSDPA:
- case TelephonyManager.NETWORK_TYPE_HSUPA:
- case TelephonyManager.NETWORK_TYPE_HSPA:
- case TelephonyManager.NETWORK_TYPE_EVDO_B:
- case TelephonyManager.NETWORK_TYPE_EHRPD:
- case TelephonyManager.NETWORK_TYPE_HSPAP:
- return Constants.NETWORK_CLASS_3_G;
- case TelephonyManager.NETWORK_TYPE_LTE:
- return Constants.NETWORK_CLASS_4_G;
- default:
- return Constants.NETWORK_CLASS_UNKNOWN;
+public static int getNetWorkType(Context context) {
+ int netType = NETWORK_NO;
+ NetworkInfo info = getActiveNetworkInfo(context);
+ if (info != null && info.isAvailable()) {
+
+ if (info.getType() == ConnectivityManager.TYPE_WIFI) {
+ netType = NETWORK_WIFI;
+ } else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
+ switch (info.getSubtype()) {
+
+ case NETWORK_TYPE_GSM:
+ case TelephonyManager.NETWORK_TYPE_GPRS:
+ case TelephonyManager.NETWORK_TYPE_CDMA:
+ case TelephonyManager.NETWORK_TYPE_EDGE:
+ case TelephonyManager.NETWORK_TYPE_1xRTT:
+ case TelephonyManager.NETWORK_TYPE_IDEN:
+ netType = NETWORK_2G;
+ break;
+
+ case NETWORK_TYPE_TD_SCDMA:
+ case TelephonyManager.NETWORK_TYPE_EVDO_A:
+ case TelephonyManager.NETWORK_TYPE_UMTS:
+ case TelephonyManager.NETWORK_TYPE_EVDO_0:
+ case TelephonyManager.NETWORK_TYPE_HSDPA:
+ case TelephonyManager.NETWORK_TYPE_HSUPA:
+ case TelephonyManager.NETWORK_TYPE_HSPA:
+ case TelephonyManager.NETWORK_TYPE_EVDO_B:
+ case TelephonyManager.NETWORK_TYPE_EHRPD:
+ case TelephonyManager.NETWORK_TYPE_HSPAP:
+ netType = NETWORK_3G;
+ break;
+
+ case NETWORK_TYPE_IWLAN:
+ case TelephonyManager.NETWORK_TYPE_LTE:
+ netType = NETWORK_4G;
+ break;
+ default:
+
+ String subtypeName = info.getSubtypeName();
+ if (subtypeName.equalsIgnoreCase("TD-SCDMA")
+ || subtypeName.equalsIgnoreCase("WCDMA")
+ || subtypeName.equalsIgnoreCase("CDMA2000")) {
+ netType = NETWORK_3G;
+ } else {
+ netType = NETWORK_UNKNOWN;
+ }
+ break;
+ }
+ } else {
+ netType = NETWORK_UNKNOWN;
+ }
}
+ return netType;
}
-public class Constants {
- // Unknown network class
- public static final int NETWORK_CLASS_UNKNOWN = 0;
- // wifi network
- public static final int NETWORK_WIFI = 1;
- // "2G" networks
- public static final int NETWORK_CLASS_2_G = 2;
- // "3G" networks
- public static final int NETWORK_CLASS_3_G = 3;
- // "4G" networks
- public static final int NETWORK_CLASS_4_G = 4;
-}
-```
-### 获取当前手机的网络类型(WIFI,2G,3G,4G)
-``` java
/**
- * 获取当前手机的网络类型(WIFI,2G,3G,4G)
- * 需添加权限
- * 需要用到上面的方法
+ * 获取当前的网络类型(WIFI,2G,3G,4G)
+ * 依赖上面的方法
+ *
+ * @param context
+ * @return 网络类型名称
+ *
+ * - NETWORK_WIFI
+ * - NETWORK_4G
+ * - NETWORK_3G
+ * - NETWORK_2G
+ * - NETWORK_UNKNOWN
+ * - NETWORK_NO
+ *
*/
-public static int getCurNetworkType(Context context) {
- int netWorkType = Constants.NETWORK_CLASS_UNKNOWN;
- ConnectivityManager cm = (ConnectivityManager) context
- .getSystemService(Context.CONNECTIVITY_SERVICE);
- NetworkInfo networkInfo = cm.getActiveNetworkInfo();
- if (networkInfo != null && networkInfo.isConnected()) {
- int type = networkInfo.getType();
- if (type == ConnectivityManager.TYPE_WIFI) {
- netWorkType = Constants.NETWORK_WIFI;
- } else if (type == ConnectivityManager.TYPE_MOBILE) {
- netWorkType = getNetworkTpye(context);
- }
+public static String getNetWorkTypeName(Context context) {
+ switch (getNetWorkType(context)) {
+ case NETWORK_WIFI:
+ return "NETWORK_WIFI";
+ case NETWORK_4G:
+ return "NETWORK_4G";
+ case NETWORK_3G:
+ return "NETWORK_3G";
+ case NETWORK_2G:
+ return "NETWORK_2G";
+ case NETWORK_NO:
+ return "NETWORK_NO";
+ default:
+ return "NETWORK_UNKNOWN";
}
- return netWorkType;
}
```
diff --git a/androidframework/src/main/java/com/blankj/androidframework/utils/EncryptUtils.java b/androidframework/src/main/java/com/blankj/androidframework/utils/EncryptUtils.java
index 2d9ec350..ce6dae17 100644
--- a/androidframework/src/main/java/com/blankj/androidframework/utils/EncryptUtils.java
+++ b/androidframework/src/main/java/com/blankj/androidframework/utils/EncryptUtils.java
@@ -1,7 +1,5 @@
package com.blankj.androidframework.utils;
-import android.text.TextUtils;
-
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
@@ -18,15 +16,25 @@ public class EncryptUtils {
throw new UnsupportedOperationException("u can't fuck me...");
}
-
/**
* MD5加密
*
- * @param data 明文
+ * @param data 明文字符串
* @return 密文
*/
public static String getMD5(String data) {
- return TextUtils.isEmpty(data) ? "" : getMD5(data.getBytes());
+ return getMD5(data.getBytes());
+ }
+
+ /**
+ * MD5加密
+ *
+ * @param data 明文字符串
+ * @param salt 盐
+ * @return 密文
+ */
+ public static String getMD5(String data, String salt) {
+ return bytes2Hex(encryptMD5((data + salt).getBytes()));
}
/**
@@ -36,10 +44,21 @@ public class EncryptUtils {
* @return 密文
*/
public static String getMD5(byte[] data) {
- if (data.length > 0) {
- return bytes2Hex(encryptMD5(data));
- }
- return "";
+ return bytes2Hex(encryptMD5(data));
+ }
+
+ /**
+ * MD5加密
+ *
+ * @param data 明文字节数组
+ * @param salt 盐字节数组
+ * @return 密文
+ */
+ public static String getMD5(byte[] data, byte[] salt) {
+ byte[] dataSalt = new byte[data.length + salt.length];
+ System.arraycopy(data, 0, dataSalt, 0, data.length);
+ System.arraycopy(salt, 0, dataSalt, data.length, salt.length);
+ return bytes2Hex(encryptMD5(dataSalt));
}
/**
@@ -49,19 +68,16 @@ public class EncryptUtils {
* @return 密文字节数组
*/
public static byte[] encryptMD5(byte[] data) {
- if (data.length > 0) {
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- md.update(data);
- return md.digest();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(data);
+ return md.digest();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
}
- return null;
+ return new byte[0];
}
-
/**
* 获取文件的MD5校验码
*
@@ -69,62 +85,56 @@ public class EncryptUtils {
* @return 文件的MD5校验码
*/
public static String getMD5File(String filePath) {
- if (!TextUtils.isEmpty(filePath)) {
- FileInputStream in = null;
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- in = new FileInputStream(filePath);
- int len;
- byte[] buffer = new byte[1024];
- while ((len = in.read(buffer)) != -1) {
- md.update(buffer, 0, len);
- }
- return bytes2Hex(md.digest());
- } catch (NoSuchAlgorithmException | IOException e) {
- e.printStackTrace();
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException ignored) {
- }
+ FileInputStream in = null;
+ try {
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ in = new FileInputStream(filePath);
+ int len;
+ byte[] buffer = new byte[1024];
+ while ((len = in.read(buffer)) != -1) {
+ md.update(buffer, 0, len);
+ }
+ return bytes2Hex(md.digest());
+ } catch (NoSuchAlgorithmException | IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ignored) {
}
}
}
return "";
}
+ /**
+ * SHA加密
+ *
+ * @param data 明文字符串
+ * @return 密文
+ */
+ public static String getSHA(String data) {
+ return getSHA(data.getBytes());
+ }
-/**
- * SHA加密
- *
- * @param data 明文
- * @return 密文
- */
-public static String getSHA(String data) {
- return TextUtils.isEmpty(data) ? "" : getSHA(data.getBytes());
-}
-
-/**
- * SHA加密
- *
- * @param data 明文字节数组
- * @return 密文
- */
-public static String getSHA(byte[] data) {
- if (data.length > 0) {
+ /**
+ * SHA加密
+ *
+ * @param data 明文字节数组
+ * @return 密文
+ */
+ public static String getSHA(byte[] data) {
return bytes2Hex(encryptSHA(data));
}
- return "";
-}
-/**
- * SHA加密
- * @param data 明文字节数组
- * @return 密文字节数组
- */
-public static byte[] encryptSHA(byte[] data) {
- if (data.length > 0) {
+ /**
+ * SHA加密
+ *
+ * @param data 明文字节数组
+ * @return 密文字节数组
+ */
+ public static byte[] encryptSHA(byte[] data) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(data);
@@ -132,10 +142,8 @@ public static byte[] encryptSHA(byte[] data) {
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
+ return new byte[0];
}
- return null;
-}
-
/**
* 一个byte转为2个hex字符
diff --git a/androidframework/src/main/java/com/blankj/androidframework/utils/NetworkUtils.java b/androidframework/src/main/java/com/blankj/androidframework/utils/NetworkUtils.java
index d2d17f15..361dc29c 100644
--- a/androidframework/src/main/java/com/blankj/androidframework/utils/NetworkUtils.java
+++ b/androidframework/src/main/java/com/blankj/androidframework/utils/NetworkUtils.java
@@ -80,7 +80,7 @@ public class NetworkUtils {
* 获取手机连接的网络类型(2G,3G,4G)
* 联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信的3G为EVDO
*/
- public static int getNetworkType(Context context) {
+ public static int getNetworkTpye(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
switch (tm.getNetworkType()) {
diff --git a/update_log.md b/update_log.md
index f26da1b0..ba022785 100644
--- a/update_log.md
+++ b/update_log.md
@@ -7,4 +7,5 @@
#### 2016/08/02 wifi设置界面bug修复,注释排版还在修改,获取mac地址增加判空,新增QQ群:74721490,欢迎加入
#### 2016/08/02 新增隐藏状态栏,注释更加全面,工具类已封装,写的时候真的是一个一个测试过去的,宝宝心里苦
#### 2016/08/03 修复在onCreate中获取view尺寸的bug,MD5和SHA的Bug修复完成(在此感谢ssyijiu)
-#### 2016/08/04 新增时间工具类(在此感谢yi520000给的补充),手机正则分简单和精确(在此感谢MIkeeJY),新增判断是否锁屏,注释使用
分段落
\ No newline at end of file
+#### 2016/08/04 新增时间工具类(在此感谢yi520000给的补充),手机正则分简单和精确(在此感谢MIkeeJY),新增判断是否锁屏,注释使用
分段落,目录按首字母排序
+#### 2016/08/05 加密新增MD5盐加密,完善NetworkUtils
--
GitLab