我试图访问文件中的某些字节,修改它们,然后输出修改后的文件
该文件是一个位图,但这并不重要,因为我正在使用open(file, 'rb')
。当我试图访问byte对象中的元素时,我会得到字母、数字和斜杠的组合。然而,当我将元素添加到列表中时,我得到的数字介于0和127之间(这就是我要寻找的)
然后,问题是修改它们并将其更改回我最初从byte对象访问的格式。我一直想弄清楚它是什么,但似乎找不到我要找的那部分
我的计划是从文件的开头取一个切片,进行更改,然后附加未触及的切片,并使用write(file, 'wb')
输出文件
有什么建议吗?我希望有一个简单的铸造方法,我只是不知道我铸造什么
在某些情况下,我试图用LSB编写一个隐写术的实现。这一点是唯一的障碍,因为我想我已经解决了所有其他问题。这是大学作业,我必须在没有图书馆的情况下完成(枕头除外,我想我不需要)
顺便说一下,我正在使用workingSlice = imageBytes[:length]
和endSlice = imageBytes[length:]
对文件进行切片,这在快速测试后似乎可以正常工作length
将由隐藏消息的长度(加上标头)定义
我编写了一些代码来测试这一点:
length = 10
with open("TestBMP.bmp", "rb") as image:
imbytes = image.read()
workingSlice = imbytes[:length]
endSlice = imbytes[length:]
print(workingSlice)
byteList = []
for i in workingSlice:
byteList += [i]
print(byteList)
stringout = b""
for i in byteList:
stringout += bytes(i)
print(stringout)
输出:
b'BM6\x00\x03\x00\x00\x00\x00\x00'
[66, 77, 54, 0, 3, 0, 0, 0, 0, 0]
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
目前没有回答
相关问题 更多 >
编程相关推荐