首页 文章 精选 留言 我的

精选列表

搜索[隐私浏览],共10000篇文章
优秀的个人博客,低调大师

微信原图泄露的只能是 Exif ,你的隐私不在这!!!

一、什么是 Exif 既然要聊到图片的 Exif 信息,那么就先来了解一下什么是 Exif ? Exif 的全称是(Exchangeableimagefile format),它是可交换图像文件格式。是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。 Exif 可以被附加在 JPEG、TIFF、RIFF 等文件之中,为其增加有关数码相机拍摄信息的内容和缩略图或图像处理软件的一些版本信息。 上面是维基百科的解释,通俗来将,Exif 可以在图片上附加一些额外的信息,例如拍摄地点,拍摄方向,拍摄的设备信息,拍摄图片的时间等等。这些信息并没有什么坏处,例如最常用拍摄照片的方向信息,所有的图片软件都依赖它的值来确定图片在你设备上显示的方向,这就是你无论手机是倒着拍摄还是横着拍摄,最终呈现在手机上都是正的的原因。 一般图片处理软件都可以读出图片的 Exif 信息,并且可以被修改。我随便找了个在线的查看 Exif 的工具网站,就可以完整的读取出我上传图片的 Exif 信息,下图只是 Exif 信息的一部分。 二、如何读取 Exif 2.1 使用 ExifInterface 在 Android 中,读取 Exif 信息,需要使用到 ExifInterface 这个接口,如果你在 Android 中搜索这个类,可以发现在android.media包下,确实有一个 ExifInterface 。 但是从 Android Support 25.1.0 支持库发布之后,又添加了一个新的支持库:ExifInterface 。这是由于 Android 7.1 引入了对框架 ExifInterface 的重大修改,因此使用此 Support 包,可以最低支持到 Api 9+。这里强烈推荐使用 Support 包中的 ExifInterface 。 使用它,需要在 Gradle 中配置依赖,这里使用最新的 26.+。 其实基本功能都是类似的,对嵌入图片文件的 Exif 标记进行读写的功能,区别在于多包含了 140 多个不同的属性(其中近 100 个是 Android 7.1 中新增的) 接下来的内容都是基于 Support 包中的 ExifInterface ,来分析的,实际上 android.media 包下的 ExifInterface 还它在接口上,还是略有差异的。 2.2 获取 ExifInterface ExifInterface 存在两个构造函数,可以传递一个图片文件路径或者图片的 InputStream。 上面两种构造方式,都可以获取到一个 ExifInterface 对象。 但是他们也是有差异的: 1、使用 InputStream 获得的 ExifInterface 是无法修改的,而直接读取的图片文件,则是可以修改的。 2、ExifInterface 无法处理远程的 InputStream,例如是从 HttpURIConnection 返回的输入流,所以这里建议使用content://**或者file://**这种 Uri 路径。 2.3 读取 Exif 信息 获得 ExifInterface 对象之后,就可以对其进行操作。 对于大多数属性,只需要视情况使用getAttributeInt()、getAttributeDouble()、getAttribute()(适用于 String)。它们分别表示不同类型的属性。这些方法接收一个 String 类型的参数,这些参数都以常量的形式,以 TAG_Xxx 为开头,被标记在 ExifInterface 中。 具体想知道不同的 TAG_Xxx 需要使用什么方法获取,可以直接看文档。 其中注释就已经标记了该属性代表的类型。 下面举个最常见的例子,获取图片的拍摄方向,用于在显示的时候进行旋转。 当然,还有一些其它比较重要的信息,例如谣传微信暴露的位置信息,可以通过getLatLong()方法获取到一个 float 的数组,分别表示经度和维度,getAltitude()获取拍摄的海拔高度,单位是 米 。还有一些图片,如果自带缩略图,可以使用getThumbnail()方法获取到。更多操作,详见代码文档,这里就不一一举例了。 需要注意的是,ExifInterface 是一个不严谨的数据,它不存在任何必须的标记字段,每个标记字段值,都是可选的,所以我们在读取的时候,一定要考虑到没有读取到 Exif 数据的情况,如何处理。缺少 Exif 数据不一定是因为特定的属性没有数据,还有可能是某些格式根本不支持 Exif 信息(例如,PNG 和 WebP )。 2.4 写入 Exit 信息 ExifInterface 其实是不可信的,它只能作为一个参考。因为任何程序都可以对它进行修改。 修改 Exif 信息可以使用setAttribute()方法,它接收一个 key-value 的键值对。用于标记待修改的 Tag 和最终修改后的值。修改完成之后,还需要调用saveAttributes()方法,否者不会将设置的 Exif 信息写入到图片文件中。 虽然文档中,描述saveAttributes()方法是一个耗时操作,推荐使用setAttribute(),但是实际测试来看,不调用saveAttributes(),是不会保存数据的。这个实际操作起来,在模拟器上会有短暂的卡顿,但是真机上并不存在这样的情况。 还有一点需要注意,虽然文档中表明,Exif 信息是一个弱校验的数据,但是它对 TAG 的值是有要求的,如果不是它本身定义的值,保存并不会报错,但是读取的时候,会返回 null 。 三、举个例子 既然已经讲解清楚 ExifInterface 的使用细节,接下来使用一个 Demo 来展示它具体的操作细节。 首先定义三个按钮,如下图: 输出 Exif 信息,按钮逻辑: 读取 Exif 信息,按钮逻辑: 写入 Exif 信息,按钮逻辑: 运行的效果如下: 四、小结 到这里基本上就讲解清楚 Exif 在 Android 中的所有细节。可以看到实际上 Exif 的信息并不可信,也并不安全,所以你女友要是拿着你分享的照片说你为什么这个时间出现在这里,你应该知道如何圆回去,全是 Exif 的锅。 本文转自承香墨影博客园博客,原文链接:http://www.cnblogs.com/plokmju/p/7462891.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

保护物联网的数据隐私和在线安全的7种方式

在当今的数字时代没有什么能够停滞不前。如果人们认为所使用的笔记本电脑,平板电脑,以及智能手机等通讯设备还不够智能的话,如今有了物联网(IoT),人们认为这是一个听起来很酷的名字,那么人们可以从物联网技术中得到了什么? 物联网已经通过智能厨房电器,家庭安全设备,以及节能产品等难以抗拒的方式进入家庭。因为人们都喜欢让生活更简单,获得更多的控制权的小工具,例如能够远程控制烤箱,或通过手机控制中央供暖恒温器,甚至锁上和打开家门。 根据最近统计的数字,到2020年将有近208亿件物联网设备。除了消费产品之外,物联网技术广泛应用在环境监测,基础设施管理,制造,医疗和保健,交通,建筑和家庭自动化,能源管理和城镇规划中。从智能电表到电子收费系统,从远程健康监测设备到海啸预警系统,物联网似乎达到了其他技术无法达到的境界。 新兴设备的背后是数字技术。这就是一台计算机,但不像人们所知道的那样。与传统计算平台不同,例如,个人电脑和Mac电脑使用的常见计算平台,而物联网设备运行在新的专有固件上。物联网在带来好处的同时,也带来了更大的风险,因为连接设备越多,意味着黑客和网络罪犯就有更多的切入点。 那么,这些设备的安全性到底如何?用户的个人或财务数据是否可能通过互联网安全保护不足的智能设备进行泄密?因此需要谨慎采取预防措施,帮助用户在互联网上保持安全。 1.对家庭的Wi-Fi进行安全保护 许多智能设备的优点是可以通过Wi-Fi进行操作,因此用户不必在每次使用计算机或智能手机时将其插入计算机或智能手机。为了保护家庭Wi-Fi免受来自智能设备安全漏洞的影响,对路由器进行检查,查看是否允许创建单独的访客网络,以使不受信任的访问者远离所设的网络。 2.选择安全的密码 为了保持私人数据的完整性,请始终遵循一个设备设置一个密码的原则。为每个设备选择唯一的密码,必要记录下来。安全的密码一般是比较复杂的,使用至少8个字母,数字和其他符号组成的字符串,不要采用词语或个人信息。许多物联网设备都有一些漏洞,黑客会欺骗用户泄露安全信息,其中包括Wi-Fi密码。用户对此要保持警惕。 3.关闭通用即插即用(UPnP)功能 一些设备,特别是摄像机,通过入口与路由器通信。接受来自外部的连接使用户可以更容易从网络访问它们,但也更不安全。通过关闭路由器和智能设备上的UPnP功能,用户可以防止它们被黑客利用。 4.保持最新的固件 正如用户必须保持所有计算机软件是最新的版本从而使保证连接互联网安全一样,对物联网设备应该采取同样严格的措施。虽然总是检查制造商的网站上的每个设备的可用更新有些繁烦,但这可能会防止更多的损害。 5.谨慎操作采用云端服务的设备 对于需要永久访问云计算以便工作的物联网设备,请谨慎操作。依赖云计算的设备通常不够安全,可能泄露更多的信息。在理想情况下,在允许访问云计算之前,请先在家庭网络上尝试使用智能设备。 6.只使用需要的设备 在可能的情况下,关闭那些不必要的互联网连接。如果真的需要互联网接入,最好使用家庭网络,没有必要单独访问外部网络。 7.不要让未授权的物联网设备工作 最后,不要试图在没有明确许可的情况下将任何物联网设备连接到工作网络。如果黑客可以追溯到用户设备的安全漏洞,那么用户的工作和组织会存在严重的风险。 原文发布时间为:2017年2月27日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册