悲剧,绝对的悲剧,悲剧中的悲剧。
分类: 网络与安全
2013-01-21 15:08:10
1、对某个文件进行DES3加密
openssl enc -des3 -in 026h23f.txt -out out026h23f.des
即可对文件026h23f.txt(明文)进行加密。
2、对某个已加密的文件进行解密
openssl enc -des3 -d -in out026h23f.des -out new026h23f.txt
将会对out026h23f.des密文进行解密,产生一个明文文件new026h23f.txt
3、对某个经过BASE64编码后的文件进行解码
openssl enc -base64 -d -in 026h23fbase64.txt -out 026h23fplain.txt
对Base64编码后的文件026h23fbase64.txt进行解码,解码后产生的新文件为026h23f plain.txt
4、产生一对RSA非对称密钥(公钥与私钥),并分别用它们来对某个文件进行加密和解密
openssl genrsa -des3 -out myrsaCA.key 1024
将会产生一个RSA私钥,私钥放在myrsaCA.key文件中
openssl rsa -in myrsaCA.key -text –noout
可在屏幕上显示私钥文件myrsaCA.key中的私钥内容。当然在显示前,该命令会自动对私钥文件myrsaCA.key中的内容进行des3解密,解密需要des3对称密钥,因此,在执行该命令的过程中,会要求输入保护口令。
openssl rsa -in myrsaCA.key -pubout -out myrsapubkey.pem
可导出RSA公钥,导出的公钥放在myrsapubkey.pem文件中,当然执行命令时这里也需要输入保护口令。
4.1、用公钥对文件加密,以后用私钥对文件解密(加密模式)
openssl rsautl -encrypt -in 026h23f.txt -pubin -inkey myrsapubkey.pem -out pub026h23f.enc
用公钥对文件026h23f.txt加密,产生的密文为pub026h23f.enc
openssl rsautl -decrypt -in pub026h23f.enc -inkey myrsaCA.key -out newpub026h23f.txt
用私钥对刚才加密的文件pub026h23f.enc进行解密,解密时也需输入口令
4.2、用私钥对文件加密,以后用共钥对文件解密(签名模式)
openssl rsautl -sign -in 026h23f.txt -inkey myrsaCA.key -out pri026h23f.enc
用私钥对文件026h23f.txt进行加密,产生的密文为pri026h23f.enc
openssl rsautl -verify -in pri026h23f.enc -pubin -inkey myrsapubkey.pem -out newpri026h23f.txt
用共钥对密文pri026h23f.enc进行解密,产生的明文为 newpri026h23f.txt
5、对某个文件产生数字摘要
openssl dgst -md5 -out 026h23f.md5 026h23f.txt
6、对某个文件产生的数字摘要进行签名,并验证签名
openssl dgst -md5 -out 026h23f.sign -sign 026h23f.key 026h23f.txt ,产生一个数字签名摘要,放置在026h23f.sign文件中
openssl dgst -md5 -signature 026h23f.sign -prverify 026h23f.key 026h23f.txt ,在屏幕上显示验证的结果
7、为用户颁发数字证书
7.1、为CA创建一个证书签名用的RSA私钥
openssl genrsa -des3 [-passout pass:password] -out ca.key 1024
生成的私钥放在文件ca.key中。注意,执行时,需要输入保护口令,除非用了-passout参数。
7.2、为CA创建一个自签名的CA根证书
openssl req -new -x509 -days 365 -key ca.key -out cacert.crt -config openssl.cnf
7.3、为用户(服务器、个人)颁发证书
要为用户颁发证书,先要用genrsa子命令为用户生成一个私钥,再用req子命令为用户生成一个证书签署请求CSR,然后再用x509子命令来为用户生成一个由CA签名的证书,输入的三个命令分别为:
openssl genrsa -des3 -out 026h23f.key 1024
openssl req -new -key 026h23f.key -out 026h23f.csr -config openssl.cnf
openssl x509 -req -in 026h23f.csr -out 026h23f.crt -CA cacert.crt -CAkey ca.key -days 600
8、上面生成的用户私钥和用户的X.509证书封装成一个个人信息交换证书,用于电子邮件的加密与签名
8.1
个人信息交换证书中封装有用户的X.509证书(内含用户的公共密钥)和用户的私有密钥,可以用在电子邮件系统中分别对邮件进行签名和加密。当用户 的私钥026h23f.key和用户的X.509证书026h23f.crt产生后,接下来就可以用Openssl将它们封装成一个个人信息交换证书。具 体命令为:
openssl pkcs12 -export -clcerts -in 026h23f.crt -inkey 026h23f.key -out 026h23f.p12
执行完此命令后,将生成一个名为026h23f.p12的用户个人信息交换证书。有了这个个人信息交换证书,就可以将它导入到outlook express中,以便加密或签名电子邮件。具体步骤为:打开outlook express,选择菜单[工具]—>[选项],在出现的对话框窗口中单击“安全”项下的“数字标识”按钮,在出现的证书窗口中分别导入个人信息交 换证书026h23f.p12和受信任的根证书cacert.crt,以后可以用此个人信息交换证书来对新建的电子邮件进行加密和签名了
8.2
对某个电子邮件进行加密与解密、签名与验证 。步骤如下:
对某个邮件进行加密,形成数字信封
$openssl smime -encrypt -in my.txt -out my.enc 026h23f.crt
对某个加密的邮件进行解密(拆解数字信封)
$openssl smime -decrypt -in my.enc -out my.txt1 -inkey 026h23f.key -recip 026h23f.crt
对某个邮件进行数字签名
$openssl smime -sign -in my.txt -out my.sign -inkey 026h23f.key -singer 026h23f.crt
对某个签名的邮件进行验证
$openssl smime -verify -in my.sign -out my.txt -ceritfile 026h23f.crt -CAfile cacert.crt
对邮件签名后再加密
$openssl smime -sign -in my.txt -out my.sign -inkey 026h23f.key -singer 026h23f.crt
$openssl smime -encrypt -in my.txt -out my.enc 026h23f.crt