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

时间: 2024-10-14 21:46:18

使用openssl进行文件加密的相关文章

用openssl对文件加密及解密

Openssl是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库.应用程序.SSL协议库.Openssl实现了SSL协议所需要的大多数算法. 下面我将单介绍使用Openssl进行文件的对称加密操作. 一.Openssl支持的加密算法有: -aes-128-cbc -aes-128-cfb -aes-128-cfb1 -aes-128-cfb8 -aes-128-ecb -aes-128-ofb -aes-192-cbc -aes-192-cfb -aes-192-cfb1 -

linux下文件加密压缩和解压的方法

一.用tar命令 对文件加密压缩和解压 压缩:tar -zcf  - filename |openssl des3 -salt -k password | dd of=filename.des3 此命令对filename文件进行加码压缩 生成filename.des3加密压缩文件, password 为加密的密码. 解压:dd if=filename.des3 |openssl des3 -d -k password | tar zxf - 注意命令最后面的“-”  它将释放所有文件, -k p

Linux下C语言使用openssl库进行加密

在这里插一小节加密的吧,使用openssl库进行加密. 使用MD5加密 我们以一个字符串为例,新建一个文件filename.txt,在文件内写入hello ,然后在Linux下可以使用命令md5sum filename.txt计算md5值 ==> b1946ac92492d2347c6235b4d2611184  .虽然写入的是hello这5个字符,但是我们使用命令xxd filename.txt后可以看出文件结尾处会有个0x0a这个回车符.所以在下面的代码中才会有\n. 1 //打开/usr/

Linux安全机制之文件加密解密

[何为加密解密] 加密:就是把明文转换成密文的过程,是使用某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容. 解密:就是把密文转换成明文的过程,授权用户通过使用与密文加密相对应的算法转译出明文. [常用密码算法和协议] 对称加密:同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密: 常用的对称加密算法:DES (56).3DES.AES (128,192,256,384,512).Blowfish.Twofish.

利用openssl进行RSA加密解密

openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具.我们即可以利用它提供的命令台工具生成密钥.证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密. RSA是一个非对称加密算法.简单说来,非对称加密算法就是说加密解密一个文件需要有两个密钥,一个用来加密,为公钥,一个用来解密,为私钥.证书可以用来授权公钥的使用. 今天小研究了下openssl的rsa加密,其中主要涉及利用公钥和密钥加解密文件,没有涉及对证书的操作.想要集体了解的可以去: http://ww

linux 下文件加密压缩和解压的方法

方法一:用tar命令 对文件加密压缩和解压 压缩: [html] view plain copytar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 此命令对filename文件进行加码压缩 生成filename.des3加密压缩文件, password 为加密的密码 解压: [html] view plain copydd if=filename.des3 |openssl des3 -d -k pa

linux下文件加密方法总结

为了安全考虑,通常会对一些重要文件进行加密备份或加密保存,下面对linux下的文件加密方法做一简单总结: 方法一:gzexe加密这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息.它是使用系统自带的gzexe程序,它不但加密,同时压缩文件.示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3

cocos2d-x 图片资源加密,Lua文件加密 (转)

游戏开发中常遇到资源保护的问题. 目前游戏开发中常加密的文件类型有:图片,Lua文件,音频等文件,而其实加密也是一把双刃剑. 需要安全那就得耗费一定的资源去实现它.目前网上也有用TexturePacker工具来加密的,不过针对性还是不够强. 分析一下原理为: 1,转格式:将需要加密的文件转为流的方式: 2,加密:根据自己需要使用加密手段,MD5,AES,甚至可以直接改变位移,加一些自己的特殊字符也可以使文件简单加密,加密完后基本保证 图片类型基本用特殊软件预览不了也打不开,Lua文件加密后一片乱

好玩的文件加密方法(自己给文件头部加密)

下面是讲解一个给文件加密的小技巧: 先讲下概念:一般系统识别文件的方式大家都会认为是文件的拓展名,比如.txt .mp4等等,是这样的.但是其实很多时候系统识别文件还通过文件的头部(linux下是这样的)~~ 关于上面的概念大家可以测试一下: 比如你有个视频文件叫xxx.mp4,我把文件名改为xxx.mmmm但是系统(win下)右键鼠标,没有打开方式这一项了,但是你依然可以打开:从已安装程序中找到一个播放器(比如迅雷看看)就可以打开了(会有个提示),这说明文件内容跟文件名没有什么关系,废话是吧,