http://www.cksis.com/blog/2685-changyongjiamisuanfa.html

1、DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。从非关键性质的实际出发,仍可以认为它是足够的。


2、3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。

3、AES加密算法是密码学中的高级加密标准,密钥长度的最少支持为128、192、256,分组长度128位。(just for memory长度相当于2DES,但强度比3DES还牛)。

4、RSA加密算法:能够抵抗到目前为止已知的所有密码***。大乘法则。

5、Base64加密算法可用于在HTTP环境下传递较长的标识信息,不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。

6、MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成—个128位散列值。(缩小四倍)


7、PGP(Pretty Good Privacy):
保密过程:
(1)首先对明文进行压缩(PKZIP算法,节约时间和空间,且强化了保密程度),如果无法压缩则不进行。
(2)根据鼠标移动及键盘输入产生一个128bit一次性秘钥(ANSI X.917),并加密文件(CAST-128、IDEA或3DES)。
(3)把一次性秘钥以RSA(或EIGamal)公钥进行加密,并和密文一切发送。
(4)接收者用RSA(或EIGamal)私钥解密,得到一次性秘钥后进行解密。
此方法结合了非对称加密和对称秘钥的优点,非对称加解密一般时间较久。
签名过程:
(1)发送者使用SHA-1生成报文的160bit散列代码(邮件文摘);
(2)发送者使用自己的私有密钥,采用RSA算法对散列代码进行加密,串接在报文的前面;
(3)接收者使用发送者的公开密钥,采用RSA解密和恢复散列代码;
(4)接收者为报文生成新的散列代码,并与被解密的散列代码相比较。如果两者匹配,则报文作为已鉴别的报文而接收。
 签名是可以分离的。
加密及签名过程:
(1)为明文生成签名并附加到报文首部;然后使用CAST-128(或IDEA、3DES)对明文报文和签名进行加密,再使用RSA(或E1Gamal)对会话密钥进行加密。
(2)在这里要注意次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改签名。
公钥管理:
   公钥的发布仍然存在安全性问题,例如公钥被篡改(public key tampering),使得使用公钥与公钥持有人的公钥不一致。这在公钥密码体系中是很严重的

安全问题。
使用情况:
GnuPG 是一个用来进行非对称加密(PGP)的免费软件,简称GPG。

对于 Linux 系统,一般可以在系统本身的软件源找到 GnuPG,对于 Windows 系统可以下载免费开源程序包 GPG4Win,建议下载完全版,里面既包含了 GnuPG 命令行工具,又有图形化的钥匙管理工具 Kleopatra 和邮件客户端程序 Claws Mail。对于Mac OSX 系统则可以使用 GPGTools

实现邮件加密和数字签名一般需要使用邮件客户端软件,现在一般比较完善的邮件客户端工具都内置集成 OpenPGP 的功能,即本身就可以无缝地使用 GnuPG。


参考地址:http://jedi.org/blog/archives/002592.html#p2
         http://security.ctocio.com.cn/securitycomment/185/8220685.shtml
         http://www.alexgao.com/2009/01/24/gpg/

         http://archboy.org/2013/04/18/gnupg-pgp-encrypt-decrypt-message-and-email-and-digital-signing-easy-tutorial/  使用说明