MD5加密(16位和32位),ZIP数据转换成String,list去重复
2012-08-06 10:57
337 查看
MD5加密,不用多少,直接上代码,分为16位和32位加密两种,代码如下,望批评指正
分为加密单个字符串和加密字符串数组,debug下,不难
ZIP数据转换成String,将zip文件的数据读出,然后转为String,直接上代码,
list去重复,取出list中重复的数据
分为加密单个字符串和加密字符串数组,debug下,不难
/** * MD5字符串加密 * * @param resource 源字符串 * @return <tt>String</tt> 加密后的MD5字符串 */ public static String md5Encryption(String resource) { if (resource == null) { resource = "null"; } String str = null; MessageDigest md; try { md = MessageDigest.getInstance("MD5"); md.update(resource.getBytes("UTF-8")); byte b[] = md.digest(); int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } // 32位的加密 //str = buf.toString(); // 16位的加密 str = buf.toString().substring(8,24); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return str; } /** * MD5字符串加密 * * @param resource 源字符串 * @return <tt>String</tt> 加密后的MD5字符串 */ public static String md5Encryption(String[] resource){ if(null==resource||resource.length<1){ return null; } String allMD5 = ""; for(String tempStr : resource){ allMD5 = allMD5 + md5Encryption(tempStr); } return allMD5; }
ZIP数据转换成String,将zip文件的数据读出,然后转为String,直接上代码,
public static String converZipToString(byte[] zippedData) { ByteArrayInputStream byteInput = null; GZIPInputStream gzin = null; ByteArrayOutputStream byteOutput = null; String data = null; byte[] byteData = null; try { byte[] buf = new byte[1024]; byteInput = new ByteArrayInputStream(zippedData); gzin = new GZIPInputStream(byteInput); byteOutput = new ByteArrayOutputStream(); int num = -1; while ((num = gzin.read(buf, 0, buf.length)) != -1) { byteOutput.write(buf, 0, num); } byteData = byteOutput.toByteArray(); if (byteOutput != null) { byteOutput.flush(); byteOutput.close(); } if (byteInput != null) { byteInput.close(); } if (gzin != null) { gzin.close(); } data = new String(byteData, "UTF-8"); } catch (IOException e) { return null; } return data; }
list去重复,取出list中重复的数据
public static List<ItemAll> removeDuplicateAtMap(List<ItemAll> list) { Map<String, ItemAll> map = new HashMap<String, ItemAll>(); for (ItemAll i : list) { // TODO 到底应该怎么去重复,需要确认 map.put(CrabmanStringUtil.md5Encryption(i.getUrl()), i); // map.put(CrabmanStringUtil.md5Encryption //(SomeUtilsAt.decode(i.getUrl())+ i.getFileTime()+ i.getKeyWord() + i.getSearchType()), i); } list.clear(); list.addAll(map.values()); return list; }
相关文章推荐
- List<Map<String, Object>> 转换成JSON数据格式保存再转List<Map<String, Object>> 返回
- 如何将一个List<Map<String,String>>类型的集合数据转换成json格式输出
- VC编程中的数据类型转换16位数据(WORD)合成32位数据(DWORD),VARIANT 、_variant_t 与 COleVariant,BSTR、_bstr_t与CComB
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- VC编程中的数据类型转换16位数据(WORD)合成32位数据(DWORD),VARIANT 、_variant_t 与 COleVariant,BSTR、_bstr_t与CComB
- Java将list数据取出并加入分隔符拼接,转换成String
- python基础数据结构——列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 介绍及相互转换
- 通过递归将list<Map<String,Object>>类型的数据转换为tree组件可识别的json数据
- 合并List<Map<String,String>>中的重复数据并对某个字段做累加
- 将JSON格式数据转换成适用于SimpleAdapter的数据形式 List<Map<String, String>>
- VC编程中的数据类型转换16位数据(WORD)合成32位数据(DWORD),VARIANT 、_variant_t 与 COleVariant,BSTR、_bstr_t与CComB
- Redis-Service.Stack.Redis对Redis基本数据类型String,List,Hash,Set,ZSet的操作
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- jquery里面调用getjson方法,将list类型转换为json格式数据,在页面迭代显示
- android 中List转换String,String转换List 改进版本
- Java数据类型中String、Integer、int相互间的转换
- List排序及与String的转换
- Java数据类型中String、Integer、int相互间的转换
- RSA密钥的数据类型转换:由合法的string到PublicKey或PrivateKey
- 。net 后台将List数据转换为json后 前台js 调用