zoukankan      html  css  js  c++  java
  • java中使用MD5加密的算法

        MD5,全名Message Digest Algorithm 5,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。以下是JAVA语言中使用MD5加密的工具类。

    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    
    public class MD5Util {
        /**
         * 对字符串进行MD5摘要加密,返回结果与MySQL的MD5函数一致
         * 
         * @param input
         * @return 返回值中的字母为小写
         */
        public static String md5(String input) {
            if (null == input) {
                input = "";
            }
            String result = "";
            try {
                // MessageDigest类用于为应用程序提供信息摘要算法的功能,如MD5或SHA算法
                MessageDigest md = MessageDigest.getInstance("MD5");
                // 获取输入
                md.update(input.getBytes());
                // 获得产出(有符号的哈希值字节数组,包含16个元素)
                byte output[] = md.digest();
    
                // 32位的加密字符串
                StringBuilder builder = new StringBuilder(32);
                // 下面进行十六进制的转换
                for (int offset = 0; offset < output.length; offset++) {
                    // 转变成对应的ASSIC值
                    int value = output[offset];
                    // 将负数转为正数(最终返回结果是无符号的)
                    if (value < 0) {
                        value += 256;
                    }
                    // 小于16,转为十六进制后只有一个字节,左边追加0来补足2个字节
                    if (value < 16) {
                        builder.append("0");
                    }
                    // 将16位byte[]转换为32位无符号String
                    builder.append(Integer.toHexString(value));
                }
                result = builder.toString();
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }
            return result;
        }
    
        // 测试
        public static void main(String[] args) {
            String m1 = md5("123");
            String m2 = md5("124");
            String m3 = md5("");
            System.out.println("m1=" + m1);
            System.out.println("m2=" + m2);
            System.out.println("m3=" + m3);
        }
    }
  • 相关阅读:
    [WinAPI] API 9 [文件的删除、复制和移动功能]
    2014-3-7 星期五 [困]
    2014-3-6 星期四 [第一天执行分析]
    [WinAPI] API 8 [获取磁盘空间信息]
    [WinAPI] API 7 [判断光驱内是否有光盘]
    [WinAPI] API 6 [操作驱动器挂载点]
    Eclipse 生成WebService客户端代码
    Windows7下安装与破解IntelliJ IDEA2017(转载)
    Tomcat的安装
    IntelliJ IDEA的几种常见的快捷键
  • 原文地址:https://www.cnblogs.com/atai/p/6841887.html
Copyright © 2011-2022 走看看