照片元信息
我们平时拍摄的图片,不仅包含了可见的像素信息,还包含了我们看不到的隐藏信息(元信息),而这些元信息,往往会不经意间泄露我们的隐私.
我们先来看看平时我们拍摄的照片里面,到底藏了哪些信息;
iPhone6s
运行脚本
佳能70D
运行脚本
Lightroom消除元信息
不只是我们平常拍的照片,网站图片的也可能存在安全隐患;
高校的官网大多年久失修,底层框架陈旧,网站安全性不是很好,高校网站的图片,一般没有进行过专业的后期处理,几乎是拍完即用,有很多安全隐患,以我从学校官网下载的新闻图片为例:
仅从图片的命名就可以确定拍摄的时间; 通过读取图片的元信息可以了解到,相机型号: 佳能750D; 拍摄时间:2017年6月23日下午4点15分16秒; 最应该消除的GPS信息被保留了下来...
不讲了...高校的网站安全建设有待提高...
学校
运行脚本
下面这张图片是从政府官网找到的,与高校官网的图片相比,图片命名看不到有价值的信息,通过读取元信息,能了解到: 相机型号:Canon EOS-1D X Mark II, 拍摄时间:2017年9月13日下午3点48分13秒拍摄...
与高校相比,政府官网的图片信息相对安全
官网
运行脚本
简书
运行脚本
简书网站的图片找不到任何图片元信息的,大家可以放心上传!不只是简书,微博,微信,qq等主流的社交平台,为了减少服务器存储图片的开销,会主动帮用户主动消除元信息,只要你不往平台上传原图,就基本可以保证信息的安全!
python脚本
GIF演示中, 009是为了前后对比,验证清除的效果,其实只需运行010即可!
import piexif
import sys
import os
import re
def remove_all_exif(image_names):
for image_name in image_names:
try:
piexif.remove(image_name)
print(image_name,"exif信息清除完毕")
except Exception:
pass
def get_images():
all_file_names = os.listdir()
image_names = list()
for file_name in all_file_names:
if re.match(r".*\.(jpg|JPG|png)",file_name):
image_names.append(file_name)
print("已经将",file_name,"添加到列表!")
else:
pass
return image_names
def main():
image_names = get_images()
remove_all_exif(image_names)
pass
if __name__ == "__main__":
main()
import os
import sys
import re
import PIL
from PIL import Image
from PIL.ExifTags import TAGS
def get_Exif(image_names):
for image_name in image_names:
print("开始读取",image_name)
exifData = dict()
imgFile = Image.open(image_name)
try:
info = imgFile._getexif()
if info:
print(image_name,"的信息为:")
for (key, value) in info.items():
nice=TAGS.get(key, key)
print("%s(%s) = %s"%(nice, key, value))
if nice == "GPSInfo":
print("---%s(%s) = %s---"%(nice,key,value))
elif re.match(r"^Date.*", nice):
print("%s(%s) = %s"%(nice, key, value))
else:
pass
else:
print("没有任何元信息!")
except Exception as e:
print(e)
def get_images():
all_file_names = os.listdir()
image_names = list()
for file_name in all_file_names:
if re.match(r".*\.(jpg|JPG|png|jpeg)",file_name):
image_names.append(file_name)
else:
pass
return image_names
def main():
image_names = get_images()
get_Exif(image_names)
pass
if __name__ == "__main__":
main()