部分加解密算法小结
部分加密算法简单介绍
1.对称加密:使用相同**加密解密。
对称加密算法:DES、AES等
2.非对称加密:加密解密使用不同**
代表算法:RSA
RSA加密算法加密解密使用不同的**,可以用于加密和认证。
加密:公钥负责加密,私钥负责解密。
认证:私钥负责签名,公钥负责验证。
认证原理:
3.摘要算法
MD5: 输入任意长度的原文字符串,返回128位的加密数据。(不可逆)
SHA1:输入任意长度的原文字符串,返回160位的加密数据。(不可逆)
典型应用:
1.加密用户密码
2.网上下载大文件的时候,会提供文件的MD5值,用户在下载后可以在下载文件的基础上计算MD5值,如果和提供的MD5相同,
说明没有损坏或修改。(MD5只针对文件内容,文件名改变后不影响MD5数值)
3.判断图片是否重复
使用消息摘要技术(如MD5、SHA)。通过比较图片产生的固定长度字符串,判断图片是否相等(如果两两图片都比较每个像素,计算量太大)。
密码加盐:密码很短的话,黑客可以利用彩虹表(枚举所有密码组合的加密值)反推出密码,可以在短密码后加上一端很长的字符再计算md5,加上的字符称为盐。
加盐例子如:Md5( md5(password) + salt) sha1( sha1(password) + salt)
CRC-32(循环冗余检验):输入任意长度的数据,返回32位的检验和
应用举例:
检测数据损坏:在数据第一次引入系统时计算检验和,在数据通过一个不可靠通道传输时再次计算检验和,如果新检验和和原检验和不相等,则认为数据损坏,该方法只能检测错误,不能修复数据。检验和也可能损坏,但检验和比数据小的多,损坏可能性非常小。、
比较两篇文章的相似度?与上面的对比
答:1.对文章分词,建立特征向量,计算特征向量之间的距离(欧氏距离、海明距离、夹角余弦)。但海量数据,两两计算量太大。
2.simhash. 内容越相同,simhash越相似。
A.分词 得到特征向量(词)和权重
B.Hash 计算各个特征向量的hash值
C.加权 对所有特征向量加权,hash值二进制为1的变为weight,为0的变为-weight
D.合并 将各个特征向量的加权结果累加
E.降维 累加结果大于0的置1,否则置0,得到simhash签名
64位simhash值,海明距离<=3可认为相似度比较高。将64位二进制均分成4块,如果两个签名海明距离<=3,必有一块完全相等。对4块分别建立倒排索引,只和四块中的比较。