常用的加签算法分为三类:对称加密算法,非对称加密算法和Hash算法。
对称加密: 怎么加密怎么解密
DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
非对称加密:公钥加密,私钥解密
RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
hash加密:单向加密。一般用于密码。
MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
主要说一下非对称加密:
举个场景
假设a,b公司都会向c公司发送报文,而c公司为了能够保证报文的安全性便会给a,b公司一个公钥(不是什么公司都能向自己发报文的,必须是自己指定的公司才可以),自己会有一个对应的私钥,而a,b公司在向c公司发送报文时就可以使用c公司提供的公钥对报文进行加密(公钥主要用来进行加密),当c公司取得报文后就会使用自己的私钥对报文进行解密(私钥主要用来解密),如果解密成功则表示该报文是正确的,可以进行接收(这就是公钥与私钥的使用)。
然而当c取得了报文后,a和b公司都可以向自己发送报文,那怎么判断这个报文是a的还是b的呢,这就要用到加签与验签了。
为了能够表明自己的身份,a或b公司便会向自己的报文里边加入一个签名,c收到报文后对其进行验签(这也是有一个加密与解密的过程,这样便证明了身份)。
总结:公钥与私钥是用来加密与加密的,加签与验签是用来证明自己身份的。
究竟该使用哪一种比较好呢?
根据自己的使用特点来确定,由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
对称加密算法不能实现签名,因此签名只能非对称算法。
由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
最后加密测试可以在这个网站去测试 http://tool.chacuo.net/cryptrsapubkey