博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
其他数字摘要算法实现
阅读量:2163 次
发布时间:2019-05-01

本文共 1759 字,大约阅读时间需要 5 分钟。

import com.sun.org.apache.xml.internal.security.utils.Base64;import javax.sound.midi.Soundbank;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class DigestDemo1 {    public static void main(String[] args) throws Exception{        // 4124bc0a9335c27f086f24ba207a4912     md5 在线校验        // QSS8CpM1wn8IbyS6IHpJEg==             消息摘要使用的是16进制        // 原文        String input = "aa";        // 算法        String algorithm = "MD5";        // 获取数字摘要对象        String md5 = getDigest(input, "MD5");        System.out.println(md5);        String sha1 = getDigest(input, "SHA-1");        System.out.println(sha1);        String sha256 = getDigest(input, "SHA-256");        System.out.println(sha256);        String sha512 = getDigest(input, "SHA-512");        System.out.println(sha512);    }    private static String toHex(byte[] digest) throws Exception {//        System.out.println(new String(digest));        // base64编码//        System.out.println(Base64.encode(digest));        // 创建对象用来拼接        StringBuilder sb = new StringBuilder();        for (byte b : digest) {            // 转成 16进制            String s = Integer.toHexString(b & 0xff);            if (s.length() == 1){                // 如果生成的字符只有一个,前面补0                s = "0"+s;            }            sb.append(s);        }        System.out.println("16进制数据的长度:" + sb.toString().getBytes().length);        return sb.toString();    }    private static String getDigest(String input, String algorithm) throws Exception {        MessageDigest messageDigest = MessageDigest.getInstance(algorithm);        // 消息数字摘要        byte[] digest = messageDigest.digest(input.getBytes());        System.out.println("密文的字节长度:" + digest.length);        return toHex(digest);    }}

 

转载地址:http://fzfzb.baihongyu.com/

你可能感兴趣的文章
(PAT 1145) Hashing - Average Search Time (哈希表冲突处理)
查看>>
(1129) Recommendation System 排序
查看>>
PAT1090 Highest Price in Supply Chain 树DFS
查看>>
(PAT 1096) Consecutive Factors (质因子分解)
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>