• 摘要算法
• 对称加密算法
• 非对称加密算法
• 数字签名
• 数字证书
数字摘要
完成
• 将恣意长度的明文经过单向hash函数摘要成固定长度的串。 Hash(明文)–>固定长度的摘要
特色
• 不管明文多长,核算出来的摘要长度总是固定的。hash(‘a’)和hash(‘aaaaaaaaaaa’)构成的摘要长度是相同的
• 一般明文不同,核算出来的摘要也不同。也便是相同的明文,核算出来的摘要是相同的,不同的明文构成的摘要一般是不相同(好的hash函数不会发生磕碰)
• 只能进行正向的音讯摘要。也便是说从音讯摘要中不能康复成本来的明文。
数字摘要算法
• md5
• sha
md5
• 将待加密串进行md5核算构成128比特位(32位16进制)的摘要。
字符串:jiajun md5摘要:a51c0678c060ae4c4630d930fe83102c
SHA-1
• 将待加密串进行SHA核算后构成160比特位(40位16进制)的摘要。
• 比照md5,摘要信息更长,运算进程更杂乱,速度更慢,但相对也愈加安全。
字符串:jiajun SHA-1摘要:26352d75496932fd05e65724610ce1aaadf9259c
base64不是一种加密算法而是一种编码算法
• 将二进制数据编码成ascll码。比方说咱们将图片以json的形式上传到服务器,那么能够将图片二进制数据经过base64编码转化为二进制。
• base64是可逆的,经过解码算法能够康复成二进制数据,所以底子不能加密。
彩虹表破解hash算法
• 上面说到的两种数字摘要算法md5和sha-1都是不可逆算法,那么怎么破解呢?彩虹表是一种破解的办法。
• 彩虹表破解法经过这样的一张表进行查询,比方攻击者拿到了一个用户暗码密文,是经过md5算法加密的,那么他能够在这样的一张表进行查询,然后查到暗码的明文。
• 彩虹表是不断的堆集的进程,表的内容不断丰富,然后破解的机率渐渐进步。
• 假如用户的暗码是常见的暗码,比方说生日,攻击者知道有些用户会用生日作为暗码,那么攻击者能够提早将这些生日组合进行核算,提早记录在表里边。那么在彩虹表查询很快能够查询的到暗码明文。而假如暗码较为杂乱,假如走漏了密文,依据生成的密文在彩虹表进行查询,是很难查到的(由于表里边并没有)。这也便是为什么咱们为用加盐的办法下降破解率的原因了。
对称加密
完成
• 发送方和接收方约好一个密钥,生成加密密文发送。接收方承受后,运用相同的密钥和加密算法的逆算法进行解密。浅显将,我给小花写一封情书,然后放在一个上锁的小箱子,经过多人的,最终抵达小花,小花经过相同的钥匙翻开箱子。可是假如钥匙半途被人捡到,那么情书就揭露了。所谓对称指的是加密解密用同一个加密密钥。
特色
• 算法是揭露的,加密速度快。
• 一旦走漏密钥,由于算法是揭露的,所以能够轻松解密。
对称加密算法
• DES算法,密钥64位
• AES算法,,密钥长度之处128,192,256三种,加密强度更高。
使用剖析
• A向B发送秘密文件,这个时分能够选用对称加密算法,没有密钥者不能解密文件。
• 假如密钥走漏那么文件能够被解密,而且跟着技能的开展,假如选用穷举暴力解密也是有或许。
• 假如A向很多人发送秘密文件,那么需求屡次约好。
非对称加密
完成
• A向B发送音讯,B先发生一个公钥和私钥,然后将公钥揭露,A取得公钥。
• 然后用公钥进行加密,然后将密文发送给B。
• B得到后用私钥进行解密。
特色
• 非对称加密愈加杂乱,所以加密解密速度没有对称加密快,可是也愈加安全。
非对称加密算法
• RSA算法
使用剖析
• 即便半途有人截获文件,由于没有私钥,而且加密算法杂乱,解密是很困难的。
• 假如A向多人发送秘密文件,那么他不需求屡次约好的进程,从公钥库依据接收方的公钥别离进行加密就行。
数字签名
完成
• A给B发送信息,A生成公钥和私钥,将公钥揭露。
• A对发送音讯进行数字摘要算法,然后再经过私钥进行加密。
• A将加密后的密文和原文发送给B
• B收到后,对密文用公钥进行解密,取得串C,再用原文进行摘要算法,取得串D,然后比照C D。这样就能承认A的身份。
• 数字签名:将明文进行摘要,然后再经过私钥进行加密的成果
数字签名算法
• MD5withRSA算法
• SHA1withRSA算法
使用剖析
• B收到A的文件,B想承认是A发送的,那么能够依据数字签名办法,依据A的公钥进行解密然后比较,由于A的私钥是不揭露的,这样匹配成功就能承认是A发送的。
数字证书
完成
• A给B发送音讯,A生成公钥和私钥。
• A将公钥,还有公钥持有者,签名算法,过期时刻等信息发送给CA(数字证书认证组织)
• CA认可信息之后,经过CA的私钥进行签名,这时分数字证书就发生了。
• 接着A将明文,明文数字签名,和数字证书一同发送给B
• B承受到后,经过CA的公钥进行解密,进行第一次校验,校验数字证书。
• 验证成功后,进行第2次查验,提取数字证书中的公钥,对密文进行解密。
使用剖析
• 在数字签名的基础上,再发送一个数字证书,这样的话接收方不需求保护一个公钥库,经过CA验证后在数字证书提取,取得公钥。