判断文件格式

在某些时候,我们需要判断文件是什么类型;而通过文件后缀(扩展名)并不能满足需求,因为扩展名可随意修改,试想一下对方给你发送了一个伪造扩展名的图片文件,实际上却是个木马病毒,又或者恶意攻击者上传了一个木马病毒到你的服务器,而你的程序却认为它是张图片;

况且在Linux环境下,没有扩展名这一说;扩展名只是一种用于方便辨认文件类型的方法,虽然它有时候不可信。

何如判断扩展名类型

  • 在可信任的情况下,可通过文件后缀(扩展名)来判断:如 .txt 是一个文本文件;此方法可作为判断文件类型的辅助条件;
  • 通过文件的文件头标志来判断;

绝大多数文件都包含头信息,比如 RAR 压缩文件的文件头(使用十六进制编辑器查看):52 61 72 71;JPEG文件的文件头:FF D8 FF

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/panduanwenjiangeshi.html

分类: 参考文档 计算机技术
推荐阅读:
Python sum()函数 在 Python 中,sum() 函数用于对给定的可迭代对象进行求和操作。
Python locals()函数 在 Python 中,locals() 是一个内置函数,用于返回当前作用域中的所有局部变量的字典。在函数内部,locals() 返回该函数的局部变量。在模块级别上,locals() 返回全局变量。
Cargo Error: failed to get `x` as a dependency of package解决方法 默认情况下,Cargo是通过内置的git库来下载依赖的,有时会因为验证原因导致失败;
使用Rust计算圆周率 要使用 Rust 计算圆周率,可以使用蒙特卡罗方法。该方法通过在单位正方形中生成随机点,并计算落在单位圆内的点的数量来估计圆周率。
Python dict()函数 在Python中,dict()函数用于创建一个字典对象。它可以接受不同类型的参数,并根据参数的不同生成字典对象。具体来说,dict()函数有以下三种使用方式:
Golang中如何表示无穷大 在Golang中,可以使用math包中的Inf函数来表示无穷大;具体来说,使用math包中的Inf(1)表示正无穷大,Inf(-1)表示负无穷大。