zoukankan      html  css  js  c++  java
  • MD5(3)

    import java.io.UnsupportedEncodingException;

    import java.security.PrivateKey;

    import java.security.SignatureException;

    import org.apache.commons.codec.digest.DigestUtils;

    /**

     * MD5签名处理核心文件

     * */

    public class MD5 {

        /**

         * 签名字符串

         *

         * @param text

         *            需要签名的字符串

         * @param key

         *            密钥

         * @param input_charset

         *            编码格式

         * @return 签名结果

         */

        public static String sign(String text, String key, String charset) throws Exception {

            text = text + key;

            return DigestUtils.md5Hex(getContentBytes(text, charset));

        }

        /**

         * 签名字符串

         *

         * @param text

         *            需要签名的字符串

         * @param key

         *            密钥

         * @param input_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 input_charset

         *            编码格式

         * @return 签名结果

         */

        public static boolean verify(String text, String sign, String key, String charset)

                                                                                          throws Exception {

            text = text + key;

            String mysign = DigestUtils.md5Hex(getContentBytes(text, charset));

            if (mysign.equals(sign)) {

                return true;

            } else {

                return false;

            }

        }

        /**

         * @param content

         * @param charset

         * @return

         * @throws SignatureException

         * @throws 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);

            }

        }

    }

  • 相关阅读:
    读书笔记_Effective_C++_条款二:尽量以const, enum, inline替换#define
    读书笔记_代码大全_第14章_组织直线型代码_第15章_使用条件语句
    读书笔记_代码大全_第31章_布局与风格
    读书笔记_代码大全_第16章_控制循环
    读书笔记_Effective_C++_条款五:了解C++默默编写并调用哪些函数
    python学习笔记(三)——字符串
    python学习笔记(六)——函数
    Windows下安装Django
    python小专题——time模块
    python学习笔记(四)——数据字典
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10400663.html
Copyright © 2011-2022 走看看