【发布时间】:2013-11-13 16:34:30
【问题描述】:
我用 C 语言编写了一个带有 bmp 图像的简单隐写工具。
我将图像读入内存,并将文本读取到 char bytes[8] 中,一次一个字符。
例如。
a=0d97
bytes[0] = 0
bytes[1] = 1
bytes[2] = 1
bytes[3] = 0
bytes[4] = 0
bytes[5] = 0
bytes[6] = 0
bytes[7] = 1
然后我会去第一个图像字节(char *ptr points它每次)把字节[0]放到LSB,然后是下一个等等。
如果 *ptr=0xff or 0b11111111 我必须将最后一个 1 设置为 0。这可以与
*ptr = *ptr ^ 0x01 ;
但如果 *ptr = 0x00 或 0b00000000 异或不起作用,因为 0^1=1
我很困惑如何设置案例。如果 LSB 为 1 或 0,我需要一个操作员每次都将最后一位设为 0,并且不要触及其他位。
【问题讨论】:
标签: c bit steganography significant-digits