我用 Bmp 图像用 C 语言编写了一个简单的隐写术工具。
我将图像读入内存,文本一次隐藏在 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
or 或0b00000000
xor 不起作用,因为0^1=1
我很困惑如何设置案例。如果 LSB 为 1 或 0,我需要一个操作员每次都将最后一位设为 0,并且不要接触其他位。