zoukankan      html  css  js  c++  java
  • MessageDigest类提供MD5或SHA等加密算法

    MessageDigest可使用的加密方法有MD2MD5SHA-1SHA-256SHA-384SHA-512,使用时候只替换相应参数值即可

    MessageDigest md5 = MessageDigest.getInstance("MD5");

    MessageDigest md5 = MessageDigest.getInstance("MD2");

    MessageDigest md5 = MessageDigest.getInstance("SHA-1");

    ````````````````````````````````````````````````

    以MD5加密为例的代码,代码中使用两种方式转换为十六进制格式数据输出

    @Test
        public void test() throws NoSuchAlgorithmException, UnsupportedEncodingException {
            String str = "a";
            MessageDigest md5 = MessageDigest.getInstance("MD5");
            byte[] bytes = md5.digest(str.getBytes("utf-8"));
            StringBuilder stringBuilder = new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                //0x表示十六进制,使用&0xff是在byte转int时,做补码处理,保证二进制数据一致性,计算机存储的是补码
                //整数转十六进制使用Integer的toHexString方法
                String tempStr = Integer.toHexString(bytes[i] & 0xff);
                if (tempStr.length() == 1)
                    //如果长度为1补0
                    stringBuilder.append("0").append(tempStr);
                else
                    stringBuilder.append(tempStr);
                //分割符如:0c:c1:75:b9:c0:f1:b6:a8:31:c3:99:e2:69:77:26:61
                if (i < bytes.length - 1)
                    stringBuilder.append(":");
            }
            System.out.println(stringBuilder.toString());
            stringBuilder=new StringBuilder();
            for (int i = 0; i < bytes.length; i++) {
                int chartIndex = bytes[i] & 0xff;
                //整数转十六进制,小于16的为0~F,要补0输出
                if (chartIndex < 16) {
                    stringBuilder.append("0");
                }
                stringBuilder.append(Integer.toHexString(chartIndex));
                if (i < bytes.length - 1)
                    stringBuilder.append(":");
            }
            System.out.println(stringBuilder.toString());
        }
  • 相关阅读:
    二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),
    双链表排序
    Linux C 单链表 读取文件 并排序 实例并解释
    Linux 中文乱码问题
    双向链表排序
    玩转iOS开发
    Firefox OS简单介绍
    深入理解Dalvik虚拟机- 解释器的执行机制
    菜鸟学Struts——I18N对国际化的支持
    【leetcode】Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/8047355.html
Copyright © 2011-2022 走看看