package com.example.mountaintravel.util;


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


import org.codehaus.jackson.map.ObjectMapper;

import android.util.Base64;


public class StringChangeUtils {
	
	private static ObjectMapper mapper = new ObjectMapper();
	
	/**  
	* @Description: TODO(MD532位加密)
	* @author Liyongrui  
	* @date 2015年7月4日 下午5:30:28
	*/ 
	public static String md5to32(String sourceStr) {
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(sourceStr.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));
            }
            result = buf.toString();
        } catch (NoSuchAlgorithmException e) {
        	e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
        return result;
    }
	
	/**  
	 * @Description: TODO(用MD5加密成32位)
	 * @author Liyongrui  
	 * @date 2015年7月20日 上午9:46:35
	**/ 
	public static String md5to16(String sourceStr) {
        String result = "";
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(sourceStr.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));
            }
            result = buf.toString().substring(8, 24);
        } catch (NoSuchAlgorithmException e) {
        	e.printStackTrace();
        }catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
        return result;
    }
	
	/**
	 * @Description: TODO(利用dom4j将xml字符串转为Document)
	 * @author LYR
	 * @date 2015年9月1日 上午9:09:56
	**/

	
	/**
	 * @Description: TODO(利用dom4j将Document字符串转为xml)
	 * @author LYR
	 * @date 2015年9月1日 上午9:17:39
	**/
	
	/**
	 * @Description: TODO(Object转json)
	 * @author LYR
	 * @date 2015年9月29日 上午9:49:59
	**/
	public static String toJson(Object value) {
		try {
			return mapper.writeValueAsString(value);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * @Description: TODO(json转map)
	 * @author LYR
	 * @date 2015年9月29日 上午9:53:13
	**/
	public static <T> T toObject(String json, Class<T> valueType) {
		try {
			return mapper.readValue(json, valueType);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	 public static  String encryptBASE64(String str) {  
	        if (str == null || str.length() == 0) {  
	            return null;  
	        }  
	        try {  
	            byte[] encode = str.getBytes("UTF-8");  
	            // base64 加密  
	            return new String(Base64.encode(encode, 0, encode.length, Base64.DEFAULT), "UTF-8");  
	  
	        } catch (UnsupportedEncodingException e) {  
	            e.printStackTrace();  
	        }  
	  
	        return null;  
	    }  
	/**
	 * @Description: TODO(得到request的Map)
	 * @author LYR
	 * @date 2015年10月16日 上午9:12:26
	**/
	
	
    /**
     * @Description: TODO(base64解密)
     * @author LYR
     * @throws IOException 
     * @date 2015年9月11日 上午10:34:57
    **/
  
    
	/**  
	* @Description: TODO(base64加密)
	* @author Liyongrui  
	 * @throws UnsupportedEncodingException 
	* @date 2015年7月6日 上午9:18:12
	*/ 
	
}
