[ Prev ] [ Index ] [ Next ]

公钥

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

获取附加于一个公匙上的签名信息列表的命令是:

gpg –check-sigs mike@hairnet.org

5、gpg --edit-key xun@xdserve.cn

expire #设置失效时间
sign #签名 ,这样有效性(validity)就变成有效了
trust #信任度
安全apt(secure apt)
apt添加公钥
$su
$apt-key add file

openSSL


MD5

计算一个文件的信息摘要
xun@xdserve:~$ openssl dgst -md5 autosave.xmi
或者
openSSL>dgst -md5 autosave.xmi

RSA

生成密钥

OpenSSL> genrsa -out a.key 1024

OpenSSL> genrsa -des -out a.key 1024
这个会对私钥加密

取出公钥

OpenSSL> rsa -in a.key -pubout -out a.pubkey

加密,将文件hello加密,输出成hello.en,rsa 最多加密长度

OpenSSL> rsautl -encrypt -in hello -inkey a.pubkey -pubin -out hello.en


解密

OpenSSL>rsautl -decrypt -in hello.en -inkey a.key -out hello.de


签名

OpenSSL>rsautl -sign -in hello -inkey a.key -out sig

验证签名(从签名中恢复)

OpenSSL>rsautl -verify -in sig -inkey a.pubkey -pubin




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密钥

OpenSSL> genrsa -des3 -out private/ca.key.pem 1024
若不需要加密,可

2,取出公钥

OpenSSL> rsa -in private/ca.key.pem -pubout -out ca.pubkey


3,生成认证申请书

OpenSSL> req -new -key private/ca.key.pem -out ca.req.pem

4,生成证书(自签名的证书)

openSSL>req -x509 -in ca.req.pem -key private/ca.key.pem -out cert/ca.crt.pem
或者
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