C语言加密汉字、图片

// encryp.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <string.h>

#include <stdlib.h>

unsigned char doEncryp(const unsigned char* src, int srcLen, unsigned char* out_) {

if (!src || !srcLen || !out_)

return 0;

for (int i = 0; i < srcLen - 1; i += 2) {

out_[i] = src[i + 1];

out_[i + 1] = src[i];

}

if (0 != srcLen % 2) {

out_[srcLen - 1] = src[srcLen - 1];

}

return 1;

}

int _tmain(int argc, _TCHAR* argv[])

{

while (1) {

printf("请输入指令,0:退出,1:加密汉字,2:加密图片:");

int cmd = 0;

scanf("%d", &cmd);

if (0 == cmd)

break;

if (1 == cmd) {

printf("请输入汉字:");

char swords[4096] = { 0 };

scanf("%s", swords);

char result[4096] = { 0 };

if (doEncryp((unsigned char*)swords, strlen(swords), (unsigned char*)result)) {

printf("加密后的汉字是:%s\r\n", result);

}

}

else if (2 == cmd) {

printf("请输入图片完整路径(比如:c:\\1.jpg):");

char picPath[255] = { 0 };

scanf("%s", picPath);

FILE* fp = fopen(picPath, "rb");

if (!fp) {

printf("输入的文件路径不存在!!!\r\n");

}

else {

fseek(fp, 0, SEEK_END);

int fsize = ftell(fp);

fseek(fp, 0, SEEK_SET);

unsigned char* src = (unsigned char*)malloc(fsize);

unsigned char* dest = (unsigned char*)malloc(fsize);

fread(src, fsize, 1, fp);

fclose(fp);

if (doEncryp(src, fsize, dest)) {

char destFname[255] = { 0 };

sprintf(destFname, "%s_加密", picPath);

FILE* fp2 = fopen(destFname, "wb");

fwrite(dest, fsize, 1, fp2);

fclose(fp2);

printf("加密后的图片已保存到:%s\r\n", destFname);

}

free(src);

free(dest);

}

}

}

return 0;

}

相关推荐
UrSpecial8 分钟前
Linux线程
linux·开发语言·c++
郝学胜-神的一滴8 分钟前
深入浅出 C++20:新特性与实践
开发语言·c++·程序人生·算法·c++20
闪电麦坤9527 分钟前
C/C++项目练习:命令行记账本
开发语言·c++
九皇叔叔28 分钟前
【2】标识符
c语言
kyle~36 分钟前
python---PyInstaller(将Python脚本打包为可执行文件)
开发语言·前端·python·qt
User:你的影子42 分钟前
WPF ItemsControl 绑定
开发语言·前端·javascript
野生的编程萌新1 小时前
【C++深学日志】从0开始的C++生活
c语言·开发语言·c++·算法
※※冰馨※※2 小时前
【c#】 使用winform如何将一个船的图标(ship.png)添加到资源文件
开发语言·windows·c#
iphone1082 小时前
视频版权保护有哪些好用的加密方案
音视频·加密·加密软件·视频加密·加密技术·视频安全·视频版权保护
蜀中廖化3 小时前
bash:trtexec:command not found
开发语言·bash