欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Steganography,位操作实现图片隐藏

程序员文章站 2022-07-03 15:54:36
...

通过图片最后两位的提取和数学计算得到隐藏在其中的另一张图片

首先先将一张图的uint8数值变化到三以内,然后替换掉另一张图的最后两位,实现隐藏

from PIL import Image
import numpy as np

ori = np.asarray(Image.open('Steganography_original.png'))
ori=ori>>2
ori=ori<<2
print("ori:")
print(ori)

to_add = np.asarray(Image.open('Steganography_recovered.png').convert('RGB'))
print("to add:")
print(to_add)
to_add=to_add/85
print("to add /85:")
print(to_add)
result=np.bitwise_or(ori.astype(int), to_add.astype(int))
print("result:")
print(result)
im = Image.fromarray(np.uint8(result))
im.show()
im.save('Steganography_added.png')
逆操作就可以找到里面的猫
from PIL import Image
import numpy as np

I=Image.open('Steganography_added.png')
stego = np.asarray(I)
extracted = stego & 0b00000011
extracted *= int(255 / 3)
print("what we get:")
print(extracted)
im = Image.fromarray(np.uint8(extracted))
im.show()
im.save('Steganography_get.png')


图片使用了经典猫和树

Steganography,位操作实现图片隐藏Steganography,位操作实现图片隐藏

相关标签: Steganography隐写术