MD5+ENUM DEMO

来源:互联网 发布:小米盒子看网络电视吗 编辑:程序博客网 时间:2024/05/14 02:47
package com.example.md5;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
/**
 * 模拟md5数字加密入库,取出加密数字
 * @author zcwfeng
 * 2013-11-19
 */
public class Md5Demo {
    enum MYDEMO {
        ZERO(0), ONE(1), TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(
                8), NINE(9);
        private int index;
        private String md5Idx;

        MYDEMO(int idx) {
            this.index = idx;
            this.md5Idx = Md5(String.valueOf(idx));
        }

        public int getIndex(int idx) {
            return index;
        }

        public int getValueIdx() {
            return index;
        }

    }

    public static void demo() {
        System.out.println(MYDEMO.ZERO.md5Idx);
        System.out.println(MYDEMO.ONE.md5Idx);
        System.out.println(MYDEMO.TWO.md5Idx);
        System.out.println(MYDEMO.THREE.md5Idx);
        System.out.println(MYDEMO.FOUR.md5Idx);
        System.out.println(MYDEMO.FIVE.md5Idx);
        System.out.println(MYDEMO.SIX.md5Idx);
        System.out.println(MYDEMO.SEVEN.md5Idx);
        System.out.println(MYDEMO.EIGHT.md5Idx);
        System.out.println(MYDEMO.NINE.md5Idx);
    }

    public static void main(String[] args) {
        // System.out.println(Md5("0"));
        // demo();
        System.out.println(getMyMd5Num(MYDEMO.TWO.md5Idx));
    }

    public static int getMyMd5Num(String md5Str) {
        HashMap map = new HashMap();
        map.put(MYDEMO.ZERO.md5Idx, 0);
        map.put(MYDEMO.ONE.md5Idx, 1);
        map.put(MYDEMO.TWO.md5Idx, 2);
        map.put(MYDEMO.THREE.md5Idx, 3);
        map.put(MYDEMO.FOUR.md5Idx, 4);
        map.put(MYDEMO.FIVE.md5Idx, 5);
        map.put(MYDEMO.SIX.md5Idx, 6);
        map.put(MYDEMO.SEVEN.md5Idx, 7);
        map.put(MYDEMO.EIGHT.md5Idx, 8);
        map.put(MYDEMO.NINE.md5Idx, 9);
        return (Integer) map.get(md5Str);
    }

    private static String Md5(String plainText) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(plainText.getBytes());
            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));
            }

            // System.out.println("result: " + buf.toString());// 32位的加密
            //
            // System.out.println("result: " + buf.toString().substring(8,
            // 24));// 16位的加密
            return buf.toString();
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}

原创粉丝点击