牛耳教育十六年专注长沙java培训,是湖南最专业的长沙java培训学校。也是中国十大品牌IT教育机构,16年来总共培养了28000名软件工程师。
电话:0731-82221222

java培训基础学习——MD5加密技术

     在一般的系统中。java数据库中存储的密码都是经过MD5加密的。这样的话就算有人得到数据库,得到也是MD5加密后的密码。之前传出MD5可以被破解,但也不知道是不是真的。就算能破解,应该也是很费功夫的。要不然网上怎么会没有破解MD5的工具了。许多网站上说可以破解,其实是将常用的MD5值放到java数据库中用来查询的。


下面分享个MD5加密的java培训学习方法:


public static String md5(String input)

    {

        String s = null;

        char hexDigits[] =

        { // 用来将字节转换成 16 进制表示的字符

        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

        try

        {

            java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");

            md.update(input.getBytes());

            byte tmp[] = md.digest(); // MD5 的计算结果是一个 128 位的长整数,

            // 用字节表示就是 16 个字节

            char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符,

            // 所以表示成 16 进制需要 32 个字符

            int k = 0; // 表示转换结果中对应的字符位置

            for (int i = 0; i < 16; i++)

            { // 从第一个字节开始,对 MD5 的每一个字节

                // 转换成 16 进制字符的转换

                byte byte0 = tmp[i]; // 取第 i 个字节

                str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字节中高 4 位的数字转换,

                // >>> 为逻辑右移,将符号位一起右移

                str[k++] = hexDigits[byte0 & 0xf]; // 取字节中低 4 位的数字转换

            }

            s = new String(str); // 换后的结果转换为字符串

 

        }

        catch (Exception e)

        {

            e.printStackTrace();

        }

        return s;

    }


评论

© 牛耳教育|长沙java培训|长沙java培训学校|长沙软件培 | Powered by LOFTER