解密加密lsb

加密 

#include "stdio.h"
#include "string.h"
#include "malloc.h"
void main()
{
FILE*in,*out;unsigned int i,j,m,n;
char inFileName[90],outFileName[90],*pch,ch[1000],*temp;
printf("请输入原始位图文件的文件名: ");
scanf("%s",inFileName);
printf("请输入加密程序产生的新位图文件的文件名: ");
scanf("%s",outFileName);fflush(stdin);
printf("请输入你要保密的文字: ");
pch=ch;
gets(pch);
for(m=0,temp=(char*)malloc(8*strlen(ch));m<strlen(ch);pch++,m++)
for(n=0;n<8;n++)
temp[8*m+n]=0x01&*pch>>n;
if((in=fopen(inFileName,"rb"))==NULL)
{
printf("无法打开原始位图文件。 n");
return;
}
if((out=fopen(outFileName,"wb"))==NULL)
{
printf("无法打开加密位图文件。 n");
return;
}
for(i=1,j=0;! feof(in);i++)
{
if(i<=54)
fputc(fgetc(in),out);
else
{
if(i<8*strlen(ch))
fputc((fgetc(in)&0xfe)+temp[j],out);
else
fputc(fgetc(in)&0xfe,out);
j++;
}
}
fclose(in);
fclose(out);
}

解密

#include "stdio.h"
void main()
{
FILE * in;unsigned int i;char FName[90],ch;
printf("请输入加密后位图文件的文件名:\n");
scanf("%s",FName);
if((in=fopen(FName,"rb"))==NULL)
{
printf("无法打开文件。 \n");
return;
}
fseek(in,54L,0);
printf("解密后的文字 :\n");
do
{ch=0;
for(i=0;i<8;i++)
{
ch+=(fgetc(in)&0x01)<<i;
putchar(ch);
}
}
while(ch);
putchar('\n');
}

猜你喜欢

转载自www.cnblogs.com/dcx-8/p/9847951.html
今日推荐