加密解密算法分类
https://wenku.baidu.com/view/691c22e44328915f804d2b160b4e767f5acf801c.html
加密技术通常分为两大类”对称式“和“非对称式"。
对称性加密算法:对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。
非对称算法:非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。发送双方A.B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,
B将自己的公有密匙发送给A.如果A要给B发送消息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。
散列算法:散列算法,又称哈希函数,是一种单向加密算法。在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息
的"散列"或”消息摘要"(Message digest)。散列算法不算加密算法,因为其结果是不可逆的,既然是不可逆的,那么当然不是用来加密的,而是签名。
对称性加密算法有: AES. DES、3DES
用途:对称加密算法用来对敏感数据等信息进行加密
DES (Data Encryption Standard) :数据加密标准,速度较快,适用于加密大量数据的场合。
3DES (Triple DES) :是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
AES (Advanced Encryption Standard) :高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
非对称性算法有: RSA. DSA、ECC
RSA:由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。RSA在国外早已进入实用阶段,已
研制出多种高速的RSA的专用芯片。
DSA (Digital Signature Algorithm) :数字签名算法,是一种标准的DSS (数字签名标准),严格来说不算加密算法。
ECC (Elliptic Curves Cryptography) :椭圆曲线密码编码学。ECC和RSA相比,具有多方面的绝对优势,主要有:抗攻击性强。相同
的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。存储空间占用小。
散列算法(签名算法)有: MD5、SHA1、 HMAC
用途:主要用于验证,防止信息被修。具体用途如:文件校验、数字签名、鉴权协议
SHA1:是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性
更好。
其他常用算法:
Base64:实不是安全领域下的加密解密算法,只能算是一个编码算法, 通常用于把二进制数据编码为可写的字符形式的数据,对数据内
容进行编码来适合传输(可以对img图像编码用于传输)。这是一种可逆的编码方式。 编码后的数据是一个字符串, 其中包含的字符为: A-
Z. az、0-9、+、/.共64个字符(26 + 26 + 10+ 1 + 1=64,其实是65个字符, “="是填充字符。Base64要求把每三个8Bit的字
节转换为四个6Bit的字节(3*8= 4*6= 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比
原来的长1/3。原文的字节最后不够3个的地方用0来补足,转换时Base64编码用=号来代替。这就是为什么有些Base64编码会以一个或
两个等号结束的原因,中间是不可能出现等号的,但等号最多只有两个。其实不用“=*也不耽误解码,之所以用"=",可能是考虑到多段编码
后的Base64字符串拼起来也不会引起混淆。)
HTTPS (全称: Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全
版。即HTTP下加入SSL层,HTTPS的安全基础是SSL(SSL使用40 位关键字作为RC 4流加密算法,这对于商业信息的加密是合适的。),
因此加密的详细内容就需要SSL。https:URL 表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在
HTTP与TCP之间),提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。它的主要作用可
以分为两种: -种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。