Java 从LSB插入中检索位
我在网上读到了关于LSB插入的内容,但它只介绍了如何向LSB插入位,但没有描述如何提取位。这就是我读到的那篇文章Java 从LSB插入中检索位,java,embed,extract,decode,lsb,Java,Embed,Extract,Decode,Lsb,我在网上读到了关于LSB插入的内容,但它只介绍了如何向LSB插入位,但没有描述如何提取位。这就是我读到的那篇文章 我了解他们在下面使用的方法,但如何提取位?以下是获取加密消息的算法: 阅读图片 迭代像素 将像素分解为RGB值(一个字节表示R,一个字节表示G,一个字节表示B) 从红色开始取LSB。如果LSB位为零,则可以和掩码为1(位00000000 1)的红色值。因此,lsbValue=rvalue&0x01。将lsbValue(它将仅为一或零)置于最高位 从格林那里拿到LSB。将其置于下一个最
我了解他们在下面使用的方法,但如何提取位?以下是获取加密消息的算法:
和掩码为1(位00000000 1)的红色值。因此,lsbValue=rvalue&0x01
。将lsbValue(它将仅为一或零)置于最高位
一旦知道哪些像素是包含隐藏信息的像素,您只需要读取这些像素的每个颜色分量的最低有效位。但我尝试读取的每个颜色的最低有效位不是原始位。由于插入的二进制值1000011,某些位发生了更改。如何从LSB中检索原始位??如果原始位指的是原始图像中的位,则一旦应用LSB插入,就无法将其取回。修改后的图像中没有足够的信息来知道原始位是什么。是的,我指的是原始图像中的位或(二进制值1000011,本文尝试嵌入)。没有办法把这些比特取回??1。原始图像=未修改的图像,处理前的字节数。2.LSB Image=沿字节串某处插入隐藏信息(例如
1000011
)的图像。现在,如果您有图像2,您可以返回1000011
,如第一条评论中所述。如果只有图像2,则无法获取图像1中这些位的值。谢谢你,iReder,我理解解码步骤,但我不知道如何从每个像素的LSB中准确获取原始位。LSB只有一位。您可以通过屏蔽除最低有效位之外的所有位来获得LSB,使用一位作为屏蔽。我已经更新了我的答案,其中有一些细节。谢谢你。我现在明白了。非常感谢。