菜鸟分享,大神勿喷!
AndroidMD5加密算与J2SE平台一模一样,因为Android 同样是使用Java.security.MessageDigest这个包。
大家既然来看此文章证明知道MD5是干什么用的,废话不多说了,直接抡代码!
下面用法极为简单,把想要加密的文本调用此方法,就回返回一个加密完成以后的文本!
调用方法::
/** * 举例调用方法 */ public static Map<String, String> citing(String uid, String sid) { Map<String,String> map=new TreeMap<>(); String sign = MD5.getMD5(map); Map<String, String> map1 = new HashMap<>(); map1.put("sign", sign); return map1; }直接上类::
public class MD5 { /** * @Description: 32位小写MD5 */ public static String parseStrToMd5L32(String str){ String reStr = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(str.getBytes()); StringBuffer stringBuffer = new StringBuffer(); for (byte b : bytes){ int bt = b&0xff; if (bt < 16){ stringBuffer.append(0); } stringBuffer.append(Integer.toHexString(bt)); } reStr = stringBuffer.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return reStr; } /** * @Description: 32位大写MD5 */ public static String parseStrToMd5U32(String str){ String reStr = parseStrToMd5L32(str); if (reStr != null){ reStr = reStr.toUpperCase(); } return reStr; } /** * @Description: 16位小写MD5 */ public static String parseStrToMd5U16(String str){ String reStr = parseStrToMd5L32(str); if (reStr != null){ reStr = reStr.toUpperCase().substring(8, 24); } return reStr; } /** * @Description: 16位大写MD5 */ public static String parseStrToMd5L16(String str){ String reStr = parseStrToMd5L32(str); if (reStr != null){ reStr = reStr.substring(8, 24); } return reStr; } public static String getMD5(Map<String, String> map){ Map<String, String> resultMap = SortMap.sortMapByKey(map); String strA = ""; for (Map.Entry<String, String> entry : resultMap.entrySet()) { strA += entry.getKey() + "=" + entry.getValue() + "&"; } String strB = strA + "rand_str=" + Constant.rand_str; String sign = MD5.parseStrToMd5U32(strB); return sign; } private Bitmap returnBitmap(String url) { URL fileUrl = null; Bitmap bitmap = null; try { fileUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection conn = (HttpURLConnection) fileUrl .openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return bitmap; }