1. Openssl安装
OpenSSL:
http://www.openssl.org/source/
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
本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/253872,如需转载请自行联系原作者