1. Openssl安装

download: wget http://www.openssl.org/source/openssl-1.0.0-beta4.tar.gz

【查看系统中的openssl情况:which openssl, 找到默认的安装在/usr/bin/openssl目录下】
tar zxvf openssl-1.0.0-beta4.tar.gz
./config
make && make install
 
2. 加密常识
  对称机密与非对称加密
(1) 对称加密采取加密和解密采取同样的密钥,加密速度快,但是密钥的传递是个问题
加密格式: openssl enc 加密算法 -k 密钥 -in 明文 -out 密文
例子:/opt/openssl/bin/openssl enc -des3 -k mykey -in test1.txt -out test1.enc
解密格式: openssl enc 加密算法 -d -k 密钥 -in 密文 -out 明文
例子:/opt/openssl/bin/openssl enc -des3 -d -k mykey -in test1.enc -out test1.out
 
(2)非对称加密
用公钥加密,用私钥解密;公钥都可以获取,私钥自己掌握。传输的密文被获取也无法转换,这样无需传递密钥,又保证了安全。向谁传递内容,则用谁的公钥进行加密。
 
无需传输密钥,但加密速度慢,是对称加密速度的1/1000左右,一般只用于加密少量的数据
 一般分三步:首先生成private/public key, 再用公钥加密明文,最后用私钥解密密文,则得到的便是需要的信息
  <1> 产生密钥对
  生成私钥:/opt/openssl/bin/openssl genrsa -out private.key 1024
  根据私钥产生公钥: /opt/openssl/bin/openssl rsa -in private.key -pubout > public.key
  <2> 用公钥加密明文
/opt/openssl/bin/openssl rsautl -in test1.txt -out test1.pk -inkey public.key -pubin -encrypt
  <3> 用私钥解密
/opt/openssl/bin/openssl rsautl -in test1.pk -out test1.open -inkey private.key -decrypt
 
(3)两种加密方式的结合
用对称加密方式的session key加密大量文件,再用非对称加密的公钥对session key进行加密, 机密后的session key和用session key加密的信息一起传递; 对方再用非对称加密的私钥对已加密的session key进行解密,再用解密后的session key对用对称加密的信息进行解密,最后得到明文。
 
(4) 私钥加密,公钥解密的应用:数字签名和认证(肯定是持有私钥的人签过的文件)
  私钥加密,公钥验证
(5)公钥如何确认是对的呢?即公钥需要证明
公钥如何获取?是否不可伪造,必须引入第三方:证书
CA