#include <iostream> #include <string> #include <stdlib.h> using namespace std; int main(int argc,char *argv[]) { string cmd = "openssl "; for(int i = 1; i<argc; i++) { cmd +=" "; cmd += argv[i]; } cout << cmd<<endl; cmd +=" "; cmd +="-k 123"; //指定加密的密码。 system(cmd.c_str()); }
[email protected]:~/workspace/encryption$ g++ main.cpp
[email protected]:~/workspace/encryption$ ./a.out enc -des -e -a -in main.cpp -out aa
[email protected]:~/workspace/encryption$ ./a.out enc -des -d -a -in aa
openssl enc -des -d -a -in aa
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int main(int argc,char *argv[])
{
string cmd = "openssl ";
for(int i = 1; i<argc; i++)
{
cmd +=" ";
cmd += argv[i];
}
cout << cmd<<endl;
cmd +=" ";
cmd +="-k 123";
system(cmd.c_str());
}
-----------
openssl也可以进行文件的加密。
把加密的文件传给需要的人后,只要他知道加密方式和加密口令,就可以解密查看文件。
openssl支持的加密算法很多,包括:bf,cast,des,des3,idea,rc2,rc5等及以上各种的变体,具体可参阅相关文档。
1.加密一个文件:
[[email protected] root]# openssl enc -des -e -a -in install.log -out install.log.des
enter des-cbc encryption password:
Verifying – enter des-cbc encryption password:
输入密码之后,就会生成install.log.des文件,这个文件名是自己指定的,可以随意写。
其中:
enc表明你打算使用某个算法
-des是具体使用的某个算法
-e 表明要加密
-a 同样是使用ASCII进行编码
-in 要加密的文件名字
-out 加密后的文件名字
把生成的文件传到另一台机器后,执行如下命令进行解密
[[email protected] gpg]# openssl enc -des -d -a -in install.log.des -out install.log
enter des-cbc decryption password:
输入口令后,就可以得到解密后的文件了。
其中
-d表明要进行解密