加密算法分对称加密和非对称加密:
常用的对称加密算法有:DES、3DES、AES、RC2、RC4、RC5、RC6,
非对称加密算法有: RSA公钥加密解密、RSA私钥加密解密、RSA秘钥对....
对称加密解释:
DES是对称性加密里面常见一种,全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。密钥长度是64位(bit),超过位数密钥被忽略。所谓对称性加密,加密和解密密钥相同。对称性加密一般会按照固定长度,把待加密字符串分成块。不足一整块或者刚好最后有特殊填充字符。往往跨语言做DES加密解密,经常会出现问题。往往是填充方式不对、或者编码不一致、或者选择加密解密模式(ECB,CBC,CTR,OFB,CFB,NCFB,NOFB)没有对应上造成。常见的填充模式有: 'pkcs5','pkcs7','iso10126','ansix923','zero' 类型,包括DES-ECB,DES-CBC,DES-CTR,DES-OFB,DES-CFB。
3DES(又叫Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。密钥长度是128位,192位(bit),如果密码位数少于等于64位,加密结果与DES相同。原版DES容易被破解,新的3DES出现,增加了加密安全性,避免被暴力破解。它同样是对称性加密,同样涉及到加密编码方式,及填充方式。包括3DES-ECB,3DES-CBC,3DES-CTR,3DES-OFB,3DES-CFB
AES,高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用中二者可以互换),因为Rijndael加密法可以支持更大范围的区块和密钥长度:AES的区块长度固定为128 比特,密钥长度则可以是128,192或256比特;而Rijndael使用的密钥和区块长度可以是32位的整数倍,以128位为下限,256比特为上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB
RC2(也称为ARC2)是一种对称密钥块加密由Ron Rivest在1987年“RC”旨在表示“Ron的代码”或“的Rivest密码”;由Rivest设计的其他密码包括RC4,RC5,RC6。包括RC2-ECB,RC2-CBC,RC2-CTR,RC2-OFB,RC2-CFB ,它可作为DES算法的建议替代算法,RC2加密算法的执行可比DES算法快两倍。
RC4,RC4加密算法是RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。1994年9月,它的算法被发布在互联网上。由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。RC4作为一种老旧的验证和加密算法易于受到黑客攻击,现在逐渐不推荐使用了。
RC5,分组密码算法是1994由麻萨诸塞技术研究所的Ronald L. Rivest教授发明的,并由RSA实验室分析。不像许多方案,RC5具有可变块大小(32,64或128位),密钥大小(0到2040位)和轮回数(0到255)。参数的原始建议选择分别为64位,128位密钥和12轮的块大小。12轮的RC5(64位块)易受使用244选择明文差分攻击。18-20轮被认为是足够的安全保护。包括RC5-ECB,RC5-CBC,RC5-CTR,RC5-OFB,RC5-CFB 。本工具RC5 块长度是64位(bit),随机轮数(12轮),密码长度64-128位(bit)
RC6,在密码学中,RC6(维斯特密码6)为RC5派生的对称密钥块密码。它被设计由Ron Rivest, Matt Robshaw, Ray Sidney, and Yiqun Lisa Yin,以满足高级加密标准(AES)的要求。RC6具有128比特的块大小和支持的64,128,192和256位的密钥大小,像RC5可以进行参数设置,以支持各种字长,密钥大小,和轮数。它包括RC6-ECB,RC6-CBC,RC6-CTR,RC6-OFB,RC6-CFB 。本工具RC6 块长度是128位(bit),随机轮数(20轮),密码长度64-256位(bit)
非对称加密:
RSA,常说的非对称加密。加密解密密钥不一致,它们是成对出现,本工具密钥生成是PEM格式。公钥加密的私钥解密,私钥加密的要公钥解密。往往私钥是不公开的,公钥是大家共享的。相同内容,相同私钥每次加密后结果还会不一样。RSA已被ISO推荐为公钥数据加密标准,能够阻击各种破解方案。 本工具提供公钥加密,解密功能。 通过公钥加密结果,必须私钥解密。 同样私钥加密结果,公钥可以解密。RSA加密也是块加密,因此一样存在填充模式。默认填充方式是pkcs#1。另外 私钥加密解密模块,可以看这里RSA私钥加密解密 生成RSA密钥对。
RSA,非对称加密,私钥一般保存在比较安全地方,用户接触不到,PEM格式的私钥有2种模式,一种是带密码加密的,一种是没有带密码的。如果带密码私钥需要我们填写密码后,才可以使用该私钥加密、解密。没有带密码私钥直接可以使用。一般从生成格式可以看到。"-----BEGIN PRIVATE KEY-----"开头 "-----END PRIVATE KEY-----"结尾的为不要密码私钥。"-----BEGIN ENCRYPTED PRIVATE KEY-----"开头 "-----END ENCRYPTED PRIVATE KEY-----"结尾,是需要解密密码私钥。私钥加密内容,只能公钥解密,公钥加密内容,只能私钥解密。公钥加密的公钥不能解密的。
做非对称加密时候,经常要生成密钥对,公钥私钥。一般常用openssl命令行生成,每次操作比较复杂,提供在线工具可以选定生成私钥位数以及私钥密码,可以直接在线生成非对称加密密钥对。本工具提供pkcs#1格式公私钥对,还有pkcs#8公私钥对。早期openssl1.0之前版本,一般提供是pkcs#1格式,有很多软件只支持pkcs#1格式(js rsa模块),那么你可以选择生成该种类型。现在一般流行是pkcs#8格式。
RSA私钥密码删除,RSA非对称加密,私钥一般被保护起来了,在生成私钥时候可以设置加密密码,有时候我们不想再去生成生成RSA密钥对。只想清除掉私钥密码,公钥保持不变