数字摘要

Posted youzhongmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字摘要相关的知识,希望对你有一定的参考价值。

数字摘要原理

数字摘要也称为信息摘要,他是唯一对应一个消息或者文本的固定长度的值,他有单向hash函数生成。生成的数字摘要可以对传输中的消息的完整性进行验证。数字摘要的特征如下:

  1、无论传入的消息有多长都会返回固定长度的信息。

  2、传入的消息不同,返回的数字摘要也不相同。但是相同的输入必定会产生相同的输出。

  3、由于消息摘要并不包含原文的完整信息,一次无法从摘要中恢复出原来的信息。

MD5

 MD5生成的摘要长度为128位,MD5的使用实例如下:

public static byte[] testMD5(String content) throws Exception{
    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] bytes = md.digest(content.getBytes("utf8"));
    return bytes;
    }

SHA

SHA-1算法生成的摘要长度为160位,由于生成的摘要越长,运算过程越复杂,运算速度越慢,安全度也更高。

SHA-1算法实例如下:

public static byte[] testSHA(String content) throws Exception{
    MessageDigest md = MessageDigest.getInstance("SHA-1");
    byte[] bytes = md.digest(content.getBytes("utf8"));
    return bytes;
    }

Base64编码

Base64编码不是一种加密算法,只是一种编码方法,因为可以通过固定的方法你想得到编码前的信息。Base64编码实例如下:

 

//编码方法
private static String byte2base64(byte[] bytes){
    BASE64Encode base64Encode = new BASE64Encode();
    return base64Encode.encode(bytes);
    }
//解码方法
private static byte[] base642byte(String base64){
    BASE64Decoder base64Decoder = new BASE64Decoder();
    return base64Decoder.decodeBuffer(base64);
}

 彩虹表破解Hash算法

该算法是将各种加密算法、生成的密文和明文构成一张表格,可以通过该表格中的密文找到对应的明文。彩虹表算法图如下:

密文 Hash算法 明文
XX MD5 XX
XX SHA XX
XX SHA XX
XX MD5 XX
... ... ...

以上是关于数字摘要的主要内容,如果未能解决你的问题,请参考以下文章

python seq2seq摘要项目片段

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

golang代码片段(摘抄)

教程4 - 验证和权限

JavaScript - 代码片段,Snippets,Gist