Created 星期二 14 二月 2012
GPG
公钥
非对称加密,参看 /data/手册/debian/gpg加解密.odt
1.生成密钥对
$gpg --gen-key
列出公钥
$gpg --list-key
2.密钥的回收
gpg –output revoke.asc –gen-revoke mykeyID
3.密钥的上传
gpg –keyserver Server Address –send-keys mykeyID
4.密钥的导出/导入
公钥的导出:
gpg -o keyfilename –export mykeyID
私钥的导出:
gpg -o keyfilename –export-secret-keys mykeyID
密钥的导入:
gpg –import filename
5.加密解密和数字签名
通过上述的密钥生成以及公钥分发后,加密和解密数据变得非常容易,用户可以通过使用该功能来达到安全地在网络上传输自己的隐密数据的目的。
为xiaonxunhong加密
gpg -er xiaoxunhong -o file.gpg file
利用私钥解密
gpg -d -o file file.gpg
数字签名
1、数字签名
#gpg -o doc.sig -s doc
doc为的始文件,doc.sig包含了原文件和签名,是二进制的。
2、文本签名
#gpg -o doc.sig –clearsign doc
这样产生的doc.sig同样包含原文件和签名,其中签名是文本的,而原文件不变。
3、分离式签名
#gpg -o doc.sig -sb doc
doc.sig仅包括签名,分离式签名的意思是原文件和签名是分开的。
4、验证签名
#gpg –verify doc.sig [doc]
验证之前必须导入文件作者的公钥,对于分离式签名,最后还要加上原文件,即后面的doc
获取附加于一个公匙上的签名信息列表的命令是:
5、gpg --edit-key xun@xdserve.cn
sign #签名 ,这样有效性(validity)就变成有效了
apt添加公钥
$su
$apt-key add file
openSSL
MD5
计算一个文件的信息摘要
xun@xdserve:~$ openssl dgst -md5 autosave.xmi
或者
openSSL>dgst -md5 autosave.xmi
RSA
生成密钥
这个会对私钥加密
取出公钥
加密,将文件hello加密,输出成hello.en,rsa 最多加密长度
解密
签名
验证签名(从签名中恢复)
DES
使用des-cbc加密
OpenSSL> des-cbc -salt -e -in hello -out hello.des -a
输入密码
OpenSSL> des-cbc -salt -d -in hello.des -a
加-a 的作用是加密后以base64编码方式输出,解密以base64编码方式输入
数字证书的生成(参考)
生成CA自签名证书
1,生成RSA密钥
2,取出公钥
3,生成认证申请书
4,生成证书(自签名的证书)
或者
openSSL>x509 -req -in careq.pem -extensions v3_ca -signkey key.pem -out cacert.pem
生成服务器证书
不需要口令
OpenSSL> genrsa -out server.key.pem 1024 OpenSSL> rsa -in
private/server.key.pem -pubout -out server.pubkey
OpenSSL> req -new -key private/server.key.pem -out server.req.pem
生成服务器证书
OpenSSL> x509 -req -CA cert/ca.crt.pem -CAkey private/ca.key.pem -CAcreateserial -in server.req.pem -extensions v3_usr -out cert/server.crt.pem
默认产生cert/ca.srl文件(序列)
生成客户端证书
OpenSSL> genrsa -des3 -out private/xun.key.pem 2048 OpenSSL> req -new -key private/xun.key.pem -out xun.req.pem OpenSSL> x509 -req -CA cert/ca.crt.pem -CAkey private/ca.key.pem -in xun.req.pem
-extensions v3_usr -out cert/xun.crt.pem
转化成text
OpenSSL>x509 -in cert/xun.crt.pem -text -out cert/xun.crt.text