常用加密算法
一、对称加密:加解密的密钥相同,加解密速度快且使用长密钥时难以破解。
-
A、 DES(密钥太短):Data Encryption Standard,密码为64位,其中8、16、…64等8位为校验位,剩余56位参与加密算法。参数接口(key,data,mode),密钥,数据,工作模式,其中工作模式为加密模式和解密模式。特点为分组比较短、密钥比较短、密码生命周期短、运算速度较慢。
-
B、 3DES:TripleDES。它是DES向AES过度的加密算法,使用3个56位密钥对数块进行三次des加密,比DES相对更安全
-
C、 Blowfish
-
D、 IDEA
-
E、 RC4
-
F、 RC5
-
G、 RC6
- H、 AES:AdvancedEncryption Standard美联邦采用的一种区块加密标准。区块长度为128bit,但密钥的长度可以是128bit、192bit、256bit,挺复杂的。具体的查资料吧。
对称加密,密钥最长只有256个bit,执行速度快,易于硬件实现。 AES加密数据块分组长度必须为128比特,密钥长度可以是128比特、192比特、256比特中的任意一个(如果数据块及密钥 长度不足时,会补齐)。AES加密有很多轮的重复和变换。大致步骤如下: 1、密钥扩展(KeyExpansion), 2、初始轮(Initial Round), 3、重复轮(Rounds),每一轮又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey, 4、最终轮(Final Round),最终轮没有MixColumns AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“状态(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。 加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤: AddRoundKey (加轮秘钥)— 矩阵中的每一个字节都与该次轮秘钥(round key)做XOR运算。 SubBytes (字节代换)— 通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。 ShiftRows (行移位)— 将矩阵中的每个横列进行循环式移位。 MixColumns (列混淆)— 使用线性转换来混合每列的四个字节。 [参考]http://blog.csdn.net/qq_28205153/article/details/55798628
二、非对称加密:加解密的密钥不同,即公私钥加密,加解密速度慢于对称加密。
非对称加密,公钥加密,私钥解密,反之亦然。由于需要大数的乘幂求模等算法,运行速度慢,不易于硬件实现。 通常私钥长度有512bit,1024bit,2048bit,4096bit,长度越长,越安全,但是生成密钥越慢,加解密也越耗时。
-
A、 RSA
-
B、 ECC(移动设备用)
-
C、 Diffie-Hellman
-
D、
-
E、 El Gamal
-
F、 DSA
-
1、 Hash算法,一种单向算法,根据目标信息生成一段特定长度的唯一的Hash值,但不能反解析,一般用在不可还原的密码、信息完成型校验等。
-
A、 MD2(速度太慢)
-
B、 MD4
-
C、 MD5:消息摘要算法Message-Digest Algorithm 5,又称哈希算法、摘要算法等,将数据经过散列运算后变成一个固定长度的值,128位的哈希值,但结果又分16位和32位,其中32位中的16个数就三16位加密值。
-
D、 HAVAL
-
E、 SHA:SecureHash Algorithm 安全哈希算法,SHA-1算法生成160位的消息摘要,SHA-256生成256位哈希值
- F、 CRC