`
刘小小尘
  • 浏览: 62107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MD5加密(16位和32位),ZIP数据转换成String,list去重复

 
阅读更多

MD5加密,不用多少,直接上代码,分为16位和32位加密两种,代码如下,望批评指正

分为加密单个字符串和加密字符串数组,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;
	}




分享到:
评论

相关推荐

    zip4j_1.3.2 java代码压缩、解压文件

    public static String zip(String src, String dest, boolean isCreateDir, String passwd) { File srcFile = new File&#40;src&#41;; ZipParameters parameters = new ZipParameters(); parameters....

    java jdk实列宝典 光盘源代码

    IP地址转化成整数,整数转化成IP地址; 十八为身份证格式验证;表达式解析器;字符串编码的转换;字符串对齐器;密码加密和验证(MD5); 制作命令行程序;使用正则表达式操作字符串;使用正则表达式验证电话号码的...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    Java JDK实例宝典

    5 IP地址转化成整数 5. 6 18位身份证格式验证 5. 7 表达式解析器 5. 8 字符串编码的转换 5. 9 字符串对齐器 5. 10 密码加密与验证 5. 11 制作命令行程序 5. 12 使用StringTokenizer ...

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    DecodeBase64Tool.zip

    C# Base64解码小工具源代码 针对对象Base64加密,Dictionary&lt;string,object&gt;,Dictionary,List,int&gt;&gt;及通用Encoding.Default解密

    python入门到高级全栈工程师培训 第3期 附课件代码

    11 FTP之创建文件夹及MD5校验思路 第33章 01 操作系统历史 02 进程的概念 03 线程的概念 04 线程的调用以及join方法 05 setDaemon方法和继承式调用.baiduyun.downloading 05 setDaemon方法和继承式调用 第34章 ...

    MySQL 5.1参考手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    新浪微博授权代码及测试结果.zip

    List&lt;myTest&gt; myTestList; /** * 测试用的类,用于解析JSON,因为只是测试,所以乱写一下 */ public class myTest { private Date created_at; //返回微博发布的时间 private String text; //微博内容 ...

    m3u8 下载工具 m3u8 downloader 2.9.7.rar

    m3u8 downloader 是一款由 .Net 开发的一个简单易用的 m3u8 下载器,现在很多视频网站的视频都分割成了小片段,其 m3u8 就是来记录这一堆地址的文件,使用本下载器可以快速的下载并合并成一个完整的视频文件。

    MySQL 5.1中文手冊

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    MySQL 5.1参考手册 (中文版)

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    mysql官方中文参考手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装MySQL ...

    MYSQL中文手册

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装...

    MySQL 5.1参考手册中文版

    2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装器安装...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例023 加密可以这样简单(位运算) 34 实例024 用三元运算符判断奇数和偶数 35 实例025 更精确地使用浮点数 35 实例026 不用乘法运算符实现2×16 37 实例027 实现两个变量的互换(不借助 第3个变量) 37 2.3 条件...

Global site tag (gtag.js) - Google Analytics