c容易隐藏字符串到文件中出错,求高手解决
c简单隐藏字符串到文件中出错,求高手解决
不知道问什么不能输出隐藏的字符串,求解决办法
------解决思路----------------------
你hide_info时将原始信息都破坏了还打算怎么还原?
0xfe & fgetc(ofp),获取的原始信息最低bit被清空了,比如这么做了之后'a'和'b'是一样的值
#include <stdio.h>
///////////////////////////
void hide_info(char *pstring, char *oldname, char *newname)
{
FILE *ofp = fopen(oldname, "rb");
FILE *nfp = fopen(newname, "wb");
char *p = pstring;
int i;
while(*p) {
for(i = 0; i < 8; ++i) {
fputc((0xfe & fgetc(ofp)) + (*p & 0x80), nfp);
*p <<= 1;
}
++p;
}
while(!feof(ofp)) {
fputc(fgetc(ofp), nfp);
}
fclose(ofp);
fclose(nfp);
}
//////////////////////////////
void dis_hiden_info(char *bmpname)
{
FILE *fp = fopen(bmpname, "rb");
char ch;
int i;
do {
ch = 0;
for(i = 0; i < 8; ++i, ch <<= 1)
ch += fgetc(fp) & 0x01;
printf("%c ", ch);
}while(ch);
fclose(fp);
}
/////////////////////////////
int main(void)
{
char oldname[123] = "G:\\cheng.bmp";
char newname[123] = "G:\\123.bmp";
char pstring[123] = "xin jiang";
hide_info(pstring, oldname, newname);
dis_hiden_info(newname);
return 0;
}
不知道问什么不能输出隐藏的字符串,求解决办法
------解决思路----------------------
你hide_info时将原始信息都破坏了还打算怎么还原?
0xfe & fgetc(ofp),获取的原始信息最低bit被清空了,比如这么做了之后'a'和'b'是一样的值