使用 Java 从图像中提取隐藏文件
Extracting hidden files out from an image using Java
我们可以通过以下方式在图片中隐藏rar/zip个文件。这个概念被称为隐写术。
假设我想在图像中隐藏一个 rar 文件,我将在 Windows 命令提示符
中编写此命令
copy /b image.jpg+as.zip hidden.jpg
现在要取回内容,我们可以使用 Winrar/7zip 或任何其他实用程序打开 hidden.jpg,它将显示其所有内容
现在要读取一个 zip 文件,我正在使用这个 java 代码
try{
File file=new File(name);
ZipFile zipFile=new ZipFile(file);
Enumeration<? extends ZipEntry>enumeration=zipFile.entries();
System.out.println("Listing Entries in the zipfile");
while(enumeration.hasMoreElements()){
Object key=enumeration.nextElement();
System.out.println(key.toString()+":"+zipFile.getEntry(key.toString()));
}
zipFile.close();
}catch(Exception e){
System.out.println(e.toString());
}
当我尝试使用此代码打开 "hidden.jpg" 文件时,此代码对普通 zip file/But 工作正常,但出现错误。我也用 Apache Common Compress Library 进行了同样的测试。谁能指出我如何在 Java 中做到这一点?
我相信这是可以做到的,因为我们可以使用 WinRar 等工具查看隐藏文件
这不是真正的隐写术,因为您没有在图像中隐藏任何内容。您只是在文件末尾添加数据,如果以任何方式编辑图像,附加数据将丢失。
一些(不是全部)存档器可以找到 "hidden" 数据的唯一原因是他们在整个文件中搜索可能的存档。正常的库例程不会。他们希望存档从头开始。
所以要想打开存档,就得找到起始位置。这可以通过打开图像文件并确定其大小,或者自己搜索存档的开头来实现。
但正如我所说,这不是隐写术,图像中没有隐藏任何内容。
还有,速记是写快手,速记是把数据藏在另一个里面。
我们可以通过以下方式在图片中隐藏rar/zip个文件。这个概念被称为隐写术。
假设我想在图像中隐藏一个 rar 文件,我将在 Windows 命令提示符
中编写此命令copy /b image.jpg+as.zip hidden.jpg
现在要取回内容,我们可以使用 Winrar/7zip 或任何其他实用程序打开 hidden.jpg,它将显示其所有内容
现在要读取一个 zip 文件,我正在使用这个 java 代码
try{
File file=new File(name);
ZipFile zipFile=new ZipFile(file);
Enumeration<? extends ZipEntry>enumeration=zipFile.entries();
System.out.println("Listing Entries in the zipfile");
while(enumeration.hasMoreElements()){
Object key=enumeration.nextElement();
System.out.println(key.toString()+":"+zipFile.getEntry(key.toString()));
}
zipFile.close();
}catch(Exception e){
System.out.println(e.toString());
}
当我尝试使用此代码打开 "hidden.jpg" 文件时,此代码对普通 zip file/But 工作正常,但出现错误。我也用 Apache Common Compress Library 进行了同样的测试。谁能指出我如何在 Java 中做到这一点?
我相信这是可以做到的,因为我们可以使用 WinRar 等工具查看隐藏文件
这不是真正的隐写术,因为您没有在图像中隐藏任何内容。您只是在文件末尾添加数据,如果以任何方式编辑图像,附加数据将丢失。
一些(不是全部)存档器可以找到 "hidden" 数据的唯一原因是他们在整个文件中搜索可能的存档。正常的库例程不会。他们希望存档从头开始。
所以要想打开存档,就得找到起始位置。这可以通过打开图像文件并确定其大小,或者自己搜索存档的开头来实现。
但正如我所说,这不是隐写术,图像中没有隐藏任何内容。
还有,速记是写快手,速记是把数据藏在另一个里面。