摘要算法

消息摘要算法

巧了我就是萌 提交于 2019-12-06 16:54:09
参考:消息摘要算法 百度百科 地址:https://baike.baidu.com/item/%E6%B6%88%E6%81%AF%E6%91%98%E8%A6%81%E7%AE%97%E6%B3%95/3286770?fr=aladdin 消息摘要算法的主要特征是加密过程不需要 密钥 ,并且经过加密的数据无法被解密,目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于 分布式网络 上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用 不可逆加密算法 加密的。近年来,随着计算机性能的飞速改善,加密速度不再成为限制这种 加密技术 发展的桎梏,因而消息摘要算法应用的领域不断增加。 简介 消息摘要算法的主要特征是加密过程不需要 密钥 ,并且经过加密的数据无法被解密,目前可以解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当可观,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的。近年来,随着计算机性能的飞速改善

文本摘要生成方法

妖精的绣舞 提交于 2019-12-06 12:39:12
最近在搞聊天数据分析,对文本摘要有需求,学习一下该方法。 一、文本摘要(Document Summarization) 文本摘要,一般地我们会把它分成抽取式文本摘要和生成式文本摘要。就目前的形势而言,工业界应用广泛的还是抽取式文本摘要。抽取式文本摘要的优点很多,主题不易偏离、适应性广、速度快。 抽取式文本摘要,最最传统的方案,无疑便是Lead3算法了。 github如下:https://github.com/yongzhuo/nlg-yongzhuo/tree/master/nlg_yongzhuo/text_summarization/extractive_sum/nous_base 二、Lead3 Lead3,顾名思义,就是最开始的3个句子,很有意思,就这一个超级简单的算法,就能达到很好的效果,例如bertsum中的测评结果,已经接近Transformer了: 我代码获取的是top2以及最后1句。 代码地址: https://github.com/yongzhuo/nlg-yongzhuo/blob/master/nlg_yongzhuo/text_summarization/extractive_sum/nous_base/lead_3/lead_3.py 三、keyword keyword,包括word_significance,思想是抽取最有意义的词语

md5sum摘要

心不动则不痛 提交于 2019-12-06 08:42:05
1、简介 MD5算法一般用于检查文件完整性,尤其常用于检测在(网络)文件传输、拷贝、磁盘错误或其他无恶意涉入的情况下文件的正确性。MD5全称报文摘要算法(Message-DigestAlgorithm 5)[RFC 1321],该算法对任意长度的信息进行逐位计算,产生一个二进制长度128位(十六进制长度32位)的校验和(或称“指纹”,“报文摘要”),不同的文件内容生成相同的报文摘要的概率是极其小的。 在Linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum工具,可以在命令行终端直接执行。 2、命令格式 md5sum [OPTION]... [FILE]... 命令选项 -b或 --binary:以二进制模式读入文件; -t或 --text:以文本文件模式读入文件(默认); -c或 --check:用来从文件中读取md5信息检查文件的一致性; --status:该选项与check一起使用,在check时不输出,根据返回值表示检查结果; -w或 --warn:在check时,检查输入的md5信息有没有非法行,若有则输出相应信息。 4、实例演示 1)生成一个文件的md5值,如下所示: [root@HLZ test]# ll total 16 -rw-r--r--1 root root 240 Sep 4 22:26

单向散列函数

安稳与你 提交于 2019-12-06 02:46:42
介绍 单项散列函数又称安全散列函数或哈希函数,根据消息的内容计算出散列值,散列值又称为消息摘要或者摘要 消息摘要长度固定,主要用来验证消息的完整性 单项散列算法的种类: MD4/MD5/SHA 单项散列函数原理 1. A准备好待传输的文件 2. A使用单项散列函数计算出消息摘要 3. A将文件和消息摘要一起发送给B 4. B接收文件之后,使用单项散列函数计算消息摘要 5. B对比接收的消息摘要和计算的消息摘要是否一致 单项散列函数特点 1. 输入长度可变 2. 输出长度固定 3. 只能计算输入到输出 SHA256介绍 1. 输入小于2^64 bit的任意长度 2. 分组长度为512 bit,经过计算得到256 bit的消息摘要 3. SHA256 消息摘要长度256 bit 4. SHA384 消息摘要长度384 bit 5. SHA512 消息摘要长度512 bit SHA 预处理 预处理会对消息进行填充,使消息长度达到512整数倍. 填充完成后,将消息进行分组. 重点:这里的消息填充为算法自动填充,不需要外界的参数, 例如初始化向量IV等. 来源: https://www.cnblogs.com/luanxueguang/p/11958699.html

iOS签名授权机制

倖福魔咒の 提交于 2019-12-06 01:22:55
iOS签名授权机制 原文 http://Joywii.github.io/blog/2016/03/02/iosqian-ming-shou-quan-ji-zhi/ 几个重要的概念 1. 非对称加密 非对称加密算法需要两个密钥: 公开密钥(publickey )和 私有密钥(privatekey) 。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。(私钥是要保密的,公钥可以公开) RSA 是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 RSA 是以三个发明者的姓氏首字母组成的。 2. 摘要算法 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。 摘要算法也可以理解为将任意长度的数据,通过一个算法,得到一个固定长度的数据。典型的摘要算法,比如大名鼎鼎的 MD5 和 SHA 。 3. 数字签名 数字签名就是利用 非对称加密 和 摘要算法 来传输数据,保证数据的 完整性 和 合法性 。验证过程如下: 1. 发送方使用给一个摘要算法( MD5 )得到要发送数据的摘要

6.5最详细的 HTTPS 科普扫盲帖

时间秒杀一切 提交于 2019-12-05 13:49:02
为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常见的例子,用户登陆。用户输入账号,密码,采用HTTP的话,只要在代理服务器上做点手脚就可以拿到你的密码了。 用户登陆 –> 代理服务器(做手脚)–> 实际授权服务器 在发送端对密码进行加密?没用的,虽然别人不知道你原始密码是多少,但能够拿到加密后的账号密码,照样能登陆。 HTTPS是如何保障安全的 HTTPS其实就是 secure http 的意思啦,也就是HTTP的安全升级版。稍微了解网络基础的同学都知道,HTTP是应用层协议,位于HTTP协议之下是传输协议TCP。TCP负责传输,HTTP则定义了数据如何进行包装。 HTTP –> TCP (明文传输) HTTPS相对于HTTP有哪些不同呢?其实就是在HTTP跟TCP中间加多了一层加密层 TLS/SSL 。 神马是TLS/SSL? 通俗的讲,TLS、SSL其实是类似的东西,SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。 传输加密的流程 原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。 大致如图所示。 就是这么回事。将数据加密后再传输

MD5消息摘要算法的C++代码实现(含注释)

我怕爱的太早我们不能终老 提交于 2019-12-05 07:57:11
#include <iostream> #include <string> using namespace std; void H_getMD5(const unsigned long Message[16]); static unsigned long State[4]; /* MD5值是由4个32bit的数组成的,也就是4个4Byte长的无符号整型 */ static unsigned long Count[2]; /* MD5算法除了要对原字符串按bit填充1和0之外,还需要在末尾附上64bit 的值,值是用字符串的bit长度 mod 2^64,这两整型是8byte,共64bit */ static unsigned char buffer[64]; /* MD5按每 512bit 一组来处理,这用来存放每组的 512bit */ /* Left_Shift表示,对x进行循环左移 n 位 */ #define Left_Shift(x,n) (((x)<<(n))|((x)>>(32-(n)))) /* F、G、H、I 4个函数是MD5的4个基本的非线性函数 */ #define F(x,y,z) (((x)&(y))|((~x)&(z))) #define G(x,y,z) (((x)&(z))|((y)&(~z))) #define H(x,y,z) ((x)^(y)^

.net中加密与解密

主宰稳场 提交于 2019-12-05 06:54:23
.Net中的加密解密 引言 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全。本文将简单地介绍了加密解密的一些概念,以及相关的数字签名、证书,最后介绍了如何在.NET中对数据进行对称加密和解密。 加密和解密 说到加密,可能大家最熟悉的就是MD5了,记得几年前我刚开始接触Web编程的时候,研究的一个ASP论坛程序,它的用户密码就是采用的MD5进行加密。MD5实际上只是一种散列运算,或者可以称为单向的加密,即是说无法根据密文(加密后的数据),推导出明文(原数据)。而我们下面要说明的,是在加密后可以进行解密、还原数据的。对于欲进行加密的对象,有的人称为消息,有的人称为数据,有的人称为信息,为了避免混淆,在本文后面部分,我统一将其称为 消息 。那么加密是什么呢?加密是通过对消息进行编码,建立一种安全的交流方式,使得只有你和你所期望的接收者能够理解。 那么怎么样才能叫安全呢?消息在接收方和发送方进行安全传递,一般要满足下面三个要点: 消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)。 消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息的发送方)。 消息的接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)。 加密通常分为两种方式:对称加密和非对称加密,接下来我们先看看对称加密。 对称加密

java学习-MD5消息摘要算法

≯℡__Kan透↙ 提交于 2019-12-04 20:53:50
现在项目,用户注册登录部分很少有涉及到了,原因:现在热门开发框架都已经在底层帮我们做了一套用户注册,密码加密,登录认证,权限控制,缓存数据等基本功能。 这有利于项目的快速完成,只需要搬砖码畜们专注于业务逻辑,会利用底层的业务逻辑就行了。这些快速开发框架的出现,也降低了我们java行业的就业门槛,但这不利于我们个人的成长(个人竞争力的体现不能只是会写业务逻辑代码,需要的是拥有绝对的技术壁垒,你有我优,你无我有!) 实际过程中使用过md5和sha1消息摘要算法,也看别人用过spring security的BCryptPasswordEncoder sha1算法介绍及代码: java学习-sha1散列算法 bit:比特或位 byte:字节 sha1消息摘要后得到的是byte[] bytes=new byte[20] ,即20字节长度,160位(20byte * 8=160)二进制长度,  40(20byte * 2=40,一个byte转为一个的十六进制)个十六进制字符串长度的数据 MD5算法介绍及代码: java学习-MD5消息摘要算法 MD5得到的是 128位,16字节长度, 32个十六进制字符串长度的数据。 BCryptPasswordEncoder 这个spring security的密码加密算法,对相同密码加密每次得到的加密字符串都是不一样的。这个框架自定义hash加密方法

密码体制(加密算法)

匿名 (未验证) 提交于 2019-12-03 00:19:01
密码体制分类方法有三种: 根据密码算法所用的密钥数量一般分为两类:非对称密码体制,对称密码体制 根据对明文信息的处理方式可将对称密码体制分为分组密码(DES、AES、IDEA、RC6)和序列密码(RC4、A5、SEAL) 根据是否能进行可逆的加密变换可以分为单项函数密码体制(MD4、MD5、SHA-1)和双向变换密码体制 对一个提供保密服务的密码系统,他的加密密钥和解密密钥相同,或者虽然不相同,但是其中一个的任意一个可以很容易的导出另外一个,那么这个系统采用的就是对称密钥体制 优点: - 加解密速度快 - 效率高 - 算法安全性高 缺点: - 密钥分发过程复杂,所花代价大 - 密钥管理量困难(实现n个用户两两保密通信,每个用户需要安全获取并保管(n-1)个密钥) - 保通信系统开放性差 - 存在数字签名的困难性(通信双方拥有相同的秘密信息,接收方可以伪造数字签名,发送方可以抵赖) DES、AES、IDEA、RC6 对一个提供保密服务的密码系统,他的加密算法和解密算法分别用不同的密钥实现,并且加密密钥不能推导出解密密钥,那么这个系统采用的就是非对称密钥体制。 每一个用户有一对密钥,用公钥加密,私钥解密 优点: - 密钥分配简单 - 密钥量少,容易管理 - 系统开放性好 - 可以实现数字签名 缺点: - 加密、解密运算复杂 - 处理速度较慢 - 同等安全强度下