zoukankan      html  css  js  c++  java
  • MD5加密

    MD5加密

    package test.test;
    
    import org.apache.commons.codec.digest.DigestUtils;
    
    import java.io.UnsupportedEncodingException;
    import java.security.PrivateKey;
    
    /**
     * MD5签名处理核心文件
     * */
    
    public class MD5 {
    
        /**
         * 签名字符串
         *
         * @param text
         *            需要签名的字符串
         * @param key
         *            密钥
         *            编码格式
         * @return 签名结果
         */
        public static String sign(String text, String key, String charset) throws Exception {
            text = text + key;
            System.out.println("签名字符串:"+text);
            return DigestUtils.md5Hex(getContentBytes(text, charset));
        }
    
        /**
         * 签名字符串
         *
         * @param text
         *            需要签名的字符串
         * @param key
         *            密钥
         * @param charset
         *            编码格式
         * @return 签名结果
         * @deprecated 无替代方法
         */
        public static String sign(String text, PrivateKey key, String charset) throws Exception {
            throw new UnsupportedOperationException();
        }
    
        /**
         * 签名字符串
         *
         * @param text
         *            需要签名的字符串
         * @param sign
         *            签名结果
         * @param key
         *            密钥
         * @param charset
         *            编码格式
         * @return 签名结果
         */
        public static boolean verify(String text, String sign, String key, String charset)
                                                                                          throws Exception {
            text = text + key;
            System.out.println("签名字符串:"+text);
            String mysign = DigestUtils.md5Hex(getContentBytes(text, charset));
            if (mysign.equals(sign)) {
                return true;
            } else {
                return false;
            }
        }
    
        /**
         * @param content
         * @param charset
         * @return
         * @throws java.security.SignatureException
         * @throws java.io.UnsupportedEncodingException
         */
        private static byte[] getContentBytes(String content, String charset) {
            if (charset == null || "".equals(charset)) {
                return content.getBytes();
            }
            try {
                return content.getBytes(charset);
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException("签名过程中出现错误,指定的编码集不对,您目前指定的编码集是:" + charset);
            }
        }
        
        public static void main(String[] args){
        	try {
        		String md5_sign = MD5.sign("15152200001", "mobile", "UTF-8");
    			System.out.println(md5_sign);
    			System.out.println(MD5.verify("15152200001", md5_sign, "mobile", "UTF-8"));
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
        }
    }
    

    Jar包依赖

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>${commons-codec_version}</version>
    </dependency>
    

      

  • 相关阅读:
    O(logn)的乘方算法
    求递归算法时间复杂度:递归树
    Xcode6 创建静态库
    Intellij IDEA使用总结
    使用Entity Framework迁移完数据库后,每次修改代码(非模型代码)后都报错。
    Entity Framework Code First数据库自动更新
    Java中 堆 栈,常量池等概念解析(转载)
    使用MyEclipse9.0开发Web Service
    (转) Java源码阅读的真实体会
    Hibernate注解版设计学生、课程、成绩的关系映射
  • 原文地址:https://www.cnblogs.com/therunningfish/p/6322010.html
Copyright © 2011-2022 走看看