使用openssl进行文件加密

Posted 于光远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用openssl进行文件加密相关的知识,希望对你有一定的参考价值。

#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表明要进行解密

 

以上是关于使用openssl进行文件加密的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用openssl 进行加密 解密

使用OpenSSL进行RSA非对称加密(C++版本)

使用OpenSSL进行RSA非对称加密(C++版本)

使用OpenSSL进行RSA非对称加密(C++版本)

使用OpenSSL进行RSA非对称加密(C++版本)

如何在 Openssl 中使用 AES 进行加密