介绍几种简单的文件加密方法,挺有意思的

来源:互联网 发布:淘宝基金欠款 编辑:程序博客网 时间:2024/06/05 13:56


这篇文章介绍几中加密方法,个人觉得挺有意思的,所以总结了以下.


以下简单介绍加密的几个命令,实现对文本的加密和解密处理:

1.生成私有密钥,可以使用不同的数字签名算法.下面分别介绍:

#采用DSA算法

$openssl dsaparam -noout -out dsakey0.pem -genkey 1024

#采用RSA算法

$openssl genrsa -out rsakey0.pem 1024

#DSA不同的是,使用RSA算法生成私钥时,需要输入一个密码,用于保护私钥

#在使用这个私钥进行解加/解密时,也需要输入这个密码

$openssl genrsa -des3 -out rsakey1.pem 1024

2.公钥生成

生成dsa算法的公钥

$openssl dsa -in dsakey0.pem -pubout -out dsakey0-pub.pem

生成rsa算法的公钥

$openssl rsa -in rsakey0.pem -pubout -out rsakey0-pub.pem

3.自签名证书的生成方法

#产生dsa算法的证书

$openssl req -x509 -key dsakey0.pem -days 365 -out mycert-dsa.pem -new

#产生RSA算法的证书

$openssl req -x509 -key rsakey0.pem -days 365 -out mycert-rsa.pem -new

5.假设有个文件test.txt

内容如下:

$cat test.txt

111111

222222

333333

444444

aaaaaa

使用证书对明文信件进行加密,输出到etest.txt文件:

$ openssl smime -encrypt -in test.txt -out etest.txt mycert-rsa.pem

查看加密后的密文内容

$ cat etest.txt

一大串非人类看得懂的文字

使用私钥进行解密,输出到dtest.txt文件:

$ openssl smime -decrypt -in etest.txt -inkey rsakey0.pem -out dtest.txt

查看解密后的信件内容,与原明文信件内容完全一致

$ cat dtest.txt

111111

222222

333333

444444

aaaaaa

补充一点:生成文件的摘要

格式:openssl dgst <算法名称>文件名

其中算法名称可以通过

openssl dgst -h 获得.

我的ubunru下自带openssl ,运行命令openssl version -a可以查看版本号

直接在程序中包含头文件,提示找不到头文件.需要在命令行在运行sudo apt -get install libssl-dev,此时可以进行编程了.

原创粉丝点击