如何将文件隐藏在图片中

原文来自:http://www.pixelstech.net/article/1347582974-Hide-a-file-in-a-picture

本文来自:http://blog.csdn.net/svitter

有时你想在电脑中隐藏一些重要的不想让别人看见的文件,那么你应该怎么做?

去寻找一个专业的工具?为文件夹设立密码?将文件属性设置为“隐藏”?

以上方法都是可行的,但是他们不够方便和安全。在这里,我们将向你分享如何将一个文件隐藏在图片中:

前提:

一张样例图片:test.jpg;

一个测试文件:text.txt;

winrar;

步骤:

1.准备好test.jpg和text.txt;

2.使用winrar将text.txt创建压缩text.rar;

3.打开终端cmd(win+R:cmd)进入存放test.jpg的文件目录(test.rar和test.jpg位于同一目录)

4.在终端中输入:(点击确定)

[plain]  view plain  copy
  1. copy /b test.jpg + test.rar test.jpg  
5.好的,打开test.jpg——你依然可以浏览这张图片。

6.那么txt在哪里?打开winrar,点击"文件“,选择”全部文件“,找到test.jpg打开——你会发现test.txt就在那里。

这种方法适合隐藏任意一种文件,简单安全。图片文件仍然是相同的大小,你可以无差别的浏览它。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python,可以使用隐写术(Steganography)的概念将一张图片隐藏到另外一张图片。隐写术是一种信息安全技术,通过在一个载体嵌入另外一个秘密信息,以实现信息隐藏的目的。 要实现图片隐藏,可以使用Python的PIL库(Python Imaging Library)。首先,我们需要加载两张图片:载体图片和需要隐藏图片。然后,将需要隐藏图片转换为二进制数据,用以嵌入到载体图片。 过程如下: 1. 导入PIL库。 ```python from PIL import Image ``` 2. 加载两张图片。 ```python carrier_image = Image.open('carrier_image.jpg') secret_image = Image.open('secret_image.jpg') ``` 3. 将需要隐藏图片转换为二进制数据。 ```python secret_image_data = secret_image.tobytes() ``` 4. 将二进制数据嵌入到载体图片的像素。 ```python carrier_pixels = list(carrier_image.getdata()) # 将二进制数据嵌入到载体图片的像素 for i, pixel in enumerate(carrier_pixels): if i < len(secret_image_data): # 将二进制数据的每个位嵌入到载体图片的每个像素的最低有效位 carrier_pixels[i] = (pixel[0] & 0xFE | (secret_image_data[i] >> 7) & 0x01, pixel[1] & 0xFE | (secret_image_data[i] >> 6) & 0x01, pixel[2] & 0xFE | (secret_image_data[i] >> 5) & 0x01) ``` 5. 将嵌入了隐藏图片的像素重新组合为一张新图片。 ```python result_image = Image.new(carrier_image.mode, carrier_image.size) result_image.putdata(carrier_pixels) ``` 6. 保存嵌入了隐藏图片的新图片。 ```python result_image.save('result_image.jpg') ``` 这样就成功将一张图片隐藏到另外一张图片。需要注意的是,嵌入图片的容量受到载体图片的尺寸和像素数量的限制,过大的隐藏图片可能会导致可见度下降。 ### 回答2: 隐藏一张图片到另外一张图片是一种图片加密和隐蔽通信的技术,被广泛应用于信息安全领域。Python作为一种强大的编程语言,也提供了相应的库和模块来实现这一功能。 实现的步骤如下: 1. 导入所需的库和模块,如PIL(Python Imaging Library)。 2. 加载两张图片,分别命名为cover_img和hidden_img。 3. 遍历hidden_img的所有像素点,并将其像素值逐一嵌入到cover_img的像素值。 4. 将处理后的cover_img保存为一个新的图片,命名为output_img。 具体代码如下: ```python from PIL import Image def hide_image(cover_img_path, hidden_img_path, output_img_path): cover_img = Image.open(cover_img_path) hidden_img = Image.open(hidden_img_path) cover_data = cover_img.load() hidden_data = hidden_img.load() width, height = cover_img.size for i in range(width): for j in range(height): r, g, b = cover_data[i, j] h_r, h_g, h_b, _ = hidden_data[i, j] # 将hidden_img的像素值嵌入到cover_img的像素值 new_r = (r // 2) * 2 + (h_r // 128) new_g = (g // 2) * 2 + (h_g // 128) new_b = (b // 2) * 2 + (h_b // 128) cover_data[i, j] = (new_r, new_g, new_b) cover_img.save(output_img_path) # 示例调用 cover_img_path = "cover_img.jpg" hidden_img_path = "hidden_img.jpg" output_img_path = "output_img.jpg" hide_image(cover_img_path, hidden_img_path, output_img_path) ``` 通过以上代码,我们就能够将一个图片嵌入到另一个图片,并将结果保存为一个新的图片。通过观察output_img,我们无法察觉到其隐藏了hidden_img。这提供了一种隐蔽的通信手段,也能够保护敏感信息的安全性。 ### 回答3: 在Python,可以使用隐写术(Steganography)的技术将一张图片隐藏到另外一张图片。下面是一个实现该功能的简单示例: 首先,我们需要导入PIL库(Python Imaging Library),它提供了图像处理的功能。 ```python from PIL import Image ``` 然后,我们需要加载原始图片和要隐藏图片。假设我们将要隐藏图片命名为"hidden_image.jpg",原始图片命名为"original_image.jpg"。 ```python original_image = Image.open("original_image.jpg") hidden_image = Image.open("hidden_image.jpg") ``` 接下来,我们需要将隐藏图片调整为与原始图片相同的尺寸。 ```python hidden_image = hidden_image.resize(original_image.size) ``` 然后,我们可以访问原始图片和要隐藏图片的像素值,将隐藏图片的像素值嵌入到原始图片的像素值。一种简单的方法是使用原始图片的RGB通道的最低有效位(Least Significant Bit)来嵌入隐藏图片的像素值。这样可以使得嵌入的操作对原始图片的影响最小。 ```python original_pixels = original_image.load() hidden_pixels = hidden_image.load() for i in range(original_image.size[0]): for j in range(original_image.size[1]): r, g, b = original_pixels[i, j] h_r, h_g, h_b = hidden_pixels[i, j] # 将隐藏图片的像素值嵌入到原始图片的RGB通道的最低有效位上 r = (r & 0xFE) | ((h_r & 0x80) >> 7) g = (g & 0xFE) | ((h_g & 0x80) >> 7) b = (b & 0xFE) | ((h_b & 0x80) >> 7) original_pixels[i, j] = (r, g, b) ``` 最后,将嵌入了隐藏图片的原始图片保存到一个新的文件。 ```python original_image.save("result_image.jpg") ``` 通过以上的步骤,我们就成功将一张图片隐藏到另外一张图片了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值