C语言实现简单文件加密

原理:异或运算

加密:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define KEY ‘@‘
int main(int argc, char * argv[]){
    FILE *fp;
    FILE *coded;
    char codedname[40];
    char ch;
    if(argc < 2){
        printf("param error!\n");
        exit(1);
    }
    if((fp = fopen(argv[1], "rb")) == NULL){
        printf("error when open file %s.\n", argv[1]);
        exit(1);
    }
    strcpy(codedname, argv[1]);
    strcat(codedname, ".coded");
    if((coded = fopen(codedname, "a+b")) == NULL){
        printf("error when open file %s.\n", codedname);
        exit(1);
    }
    while((ch = getc(fp)) != EOF){
        char temp = ch^KEY;
        putc(temp, coded);
    }

    if(fclose(fp) != 0){
        printf("error when close file %s.\n", argv[1]);
        exit(1);
    }
    if(fclose(coded) != 0){
        printf("error when close file %s.\n", codedname);
    }
    return 0;
}

解密:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char * argv[]){
    FILE *fp;
    FILE *decoded;
    char decodedname[40];
    char ch;
    char key;
    const char *dot = ".";
    if(argc < 3){
        printf("param error!\n");
        exit(1);
    }
    if((fp = fopen(argv[1], "rb")) == NULL){
        printf("error when open file %s.\n", argv[1]);
        exit(1);
    }
    strcpy(decodedname, strtok(argv[1], dot));
    strcat(decodedname, ".");
    strcat(decodedname, strtok(NULL, dot));
    key = argv[2][0];

    if((decoded = fopen(decodedname, "a+b")) == NULL){
        printf("error when open file %s.\n", decodedname);
        exit(1);
    }
    while((ch = getc(fp)) != EOF){
        char temp = ch^key;
        putc(temp, decoded);
    }

    if(fclose(fp) != 0){
        printf("error when close file %s.\n", argv[1]);
        exit(1);
    }
    if(fclose(decoded) != 0){
        printf("error when close file %s.\n", decodedname);
    }
    return 0;
}
时间: 2024-07-28 21:33:21

C语言实现简单文件加密的相关文章

C++内嵌汇编代码,简单文件加密

#include <iostream> #include <fstream> using namespace std; int main(int argc, char* argv[]){ if(argc < 3){ cout<<"Usage: Project infile outfile"<<endl; return -1; } const int BUFSIZE = 2000; char buf[BUFSIZE]; unsigne

如何对文件加密简单的方法简单实用?公司电脑文档加密解决方案那个好?上海风奥科技

近期,互联网上所爆出的美国两家科技巨头的数据泄露事件,相信大家并不陌生,针对这类频繁上演的数据泄露事件,企事业单位要如何来实现对企业数据安全的保护?企业的电子文档如何采取有效安全的加密措施能够帮助企业远离数据安全问题?今天,风奥科技小编就与大家一起分析一下,站在如今的互联网格局下,什么样的加密方案能够有效方便的对文件加密?企业电脑文件加密方案有哪些? 其实,对文件加密的方案有很多种,具体选择哪一种或者采取什么样的方案,都是因人而异的,针对不同的人群以及不同企业对于数据安全的需求不同,可能在选择方

简单安全的电脑文件加密方案?如何控制数据文档随意外发?选择湖南风奥科技

网络技术的普及程度的提高,确实给该阶段时代的发展带来便利,也让人们享受到互联网发展带来的快捷!人们在享受互联网发展带来的快捷感的同时,大家是否思考过,互联网的发展又会给这个时代带来哪些危机? 为什么要加强对电脑文件加密的使用?相信不少的企业以及个人都在互联网新闻上看到了不少关于某某企业.某某机构等数据泄露,多少多少数据泄露为企业带来了什么样的影响等等诸如此类的相关报道!正是因为这些数据泄露事件在互联网上的公开,让现阶段的政府部门等等加强了对互联网市场安全监管,同时企事业单位也加强了对自身企业数据

【Java】Swing+IO流实现一个简单的文件加密程序

EncrytService package com.my.service; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class EncryptService { // 默认密匙路径 private static String DEFAULT_KEY_URL = ".//KEY"; // 临时文件路径 private static String

简单的文件读写---文件简单的加密、解密

文件加密 package encryption; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class Encryption { //文件加密 public static void Encrypt(File file){ if(file == null){ return; } try { @SuppressWarnings("resource") Ra

WebConfig配置 文件加密处理

webconfig 文件加密处理 前几日正好遇到配置文件加密解密的问题,简单记录下流程. 1.首先运行cmd然后打开Framework.cd C:\Windows\Microsoft.NET\Framework\v4.0.303192.加密(需要将web.config文件放到指定目录下,如C:\1):aspnet_regiis -pef "connectionStrings" C:\13.解密(需要将web.config文件放到指定目录下,如C:\1):aspnet_regiis -p

apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

在APP开发工程中,有时候我们可以通过APK反编译来借鉴下别人的思想,但是切不可用于不正当的用途!了解反编译的程序员也不必担心,可以多去了解下APP安全加密技术,这样就不用担心自己的APP被反编译了!当然本文的目的只是分享. apk反编译生成程序的源代码和图片.XML配置.语言资源等文件. 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p/android-apktool/downloads/list 2.解压 apktool,打开DOS命令行工具

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文件加密后一片乱