** 何为加密解密** 加密:就是把明文转换成密文的过程,是使用某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。 解密:就是把密文转换成明文的过程,授权用户通过使用与密文加密相对应的算法转译出明文。
常用密码算法和协议 对称加密:同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密; 常用的对称加密算法:DES (56)、3DES、AES (128,192,256,384,512)、Blowfish、Twofish、IDEA、RC6、CAST5等 ; 公钥加密:也叫非对称加密,是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。 常用的公钥加密算法:RSA, DSA, EIGamal等; 单向加密:是不可解密的加密方法,是非可逆的; 常用的公钥加密算法:MD5、SHA1、SHA256、SHA384、SHA512等; 认证协议: IKE协议(英特网密钥交换协议):常用来确保虚拟专用网络×××与远端网络或者宿主机进行交流时的安全; SSL( 安全套接字层): 网络通信提供安全及数据完整性的一种安全协议。 TLS(传输层安全): 是仿照SSL制定,用于在两个通信应用程序之间提供保密性和数据完整性。
加密解密过程
openssl的介绍和使用 openssl:开源的ssl实现工具,它由三个组件组成 三个组件: openssl: 多用途的命令行工具 libcrypto: 加密算法库 libssl:加密模块应用库,实现了ssl及tls 相关命令:openssl enc、openssl dgst、openssl genrsa、openssl rsa 另外,还有一系列的指令,如: enc:通用加密程序,可以使用不同的加密组合完成加密,输入及输出可以通过Base64编码转换。 dgst:通用邮件文摘,使用f md2, md5, sha (sha-0 or sha-1)或者mdc2等算法。 rsa:操纵RSA 私钥。 dsa:操纵DSA 私钥。 dh:操纵Diffie-Hellman参数文件。 crt2pkcs7:产生包括了一个crl和证书的pkcs7对象。 x509:操纵x509证书, “自签”证书。 req:操纵PKCS#10证书需求,并且产生证书请求。 genrsa:产生一个任意大小的RSA 私钥。 genrsa:产生了一组Diffie-Hellman参数。 ca:从PKCS#10 证书请求产生一个证书,该程序同时维护着所颁发的证书的数据库。 verify:检测x509证书的签名
加密: ** 1、对称加密:** openssl enc -e -des3 -in FILE -out FILE :-e表示加密,-des3表示加密算法,注意由于加密的文件一般其他人没有任何权限,在不改变当前环境的情况下,使用(command)来实现在子shell中设定umask,然后按提示输入密钥即可
2、单向加密 openssl dgst -md5 testfile:
3、非对称加密 生成私钥: openssl genrsa -out /PATH/TO/PRIVATEKEY.FILE NUM_BITS (umask066; opensslgenrsa-out key.pri–des 2048) 从私钥中提取出公钥: openssl rsa -in PRIVATEKEYFILE –pubout –out PUBLICKEYFILE