热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

利用Gpg4win来打造一个安全的加密文件

出于工作需要,最近我在研究文件加密,正好找个工具说一说。一、加密模式简述加密工具基于算法模式,一般分两类,一类是对称加密,一种是非对称

出于工作需要,最近我在研究文件加密,正好找个工具说一说。

一、加密模式简述

加密工具基于算法模式,一般分两类,一类是对称加密,一种是非对称加密。前者加密和解密使用一套密钥,常用于密码式加密;后者非对称加密,加密和解密使用两套密钥:一般为公钥加密,私钥解密。

文件加密主要是为了安全,诚然很多软件本身也携带加密功能,但基于对称加密的密码模式,安全性值得商榷。今天我不讨论加密原理,只是实际操作一下来向大家展示非对称加密工具的实践。
在windows平台下,Gpg4win无疑是比较好用的一款非对称加密软件。
官方地址:pgp4win 最新版本为3.0.3

工具是免费的,但是我在下载的时候遇到了捐款提示,如果没有paypal没啥问题。如果有,注意留神是否要捐款。 :)

二、安装Gpg4win

WINDOWS下的软件只要不涉及配置安装一般都是一路next即可
1、程序包
利用Gpg4win来打造一个安全的加密文件

  1. 好消息是,这个软件有中文语言,开心不?
    利用Gpg4win来打造一个安全的加密文件
  2. 出现中文语言的安装向导
    利用Gpg4win来打造一个安全的加密文件
  3. 有必选和可选,具体功能请自行研究
    利用Gpg4win来打造一个安全的加密文件
    5.安装完成,图标如下
    利用Gpg4win来打造一个安全的加密文件

    三、创建公私秘钥对

  4. 第一次启动程序后默认是没有秘钥对,需要手工创建,点击“创建密钥对”
    利用Gpg4win来打造一个安全的加密文件
  5. 创建秘钥需要2个参数,名字和电子邮件,电子邮件地址无需真实邮箱,地址格式符合即可,如下
    利用Gpg4win来打造一个安全的加密文件
    3.在正式创建前后要求你再次检查
    利用Gpg4win来打造一个安全的加密文件
  6. 然后要提示你属于用于保护你秘钥的密码,会根据你的密码强度进行建议
    利用Gpg4win来打造一个安全的加密文件
    5.创建秘钥对需要一定的计算时间
    利用Gpg4win来打造一个安全的加密文件
    6.创建完成提示你保存副本或发送公钥等
    利用Gpg4win来打造一个安全的加密文件
    7.会在主界面展示
    .利用Gpg4win来打造一个安全的加密文件

    四、公私钥加密测试

1、前提准备

我准备了3个文本文件用于测试,分别如下
利用Gpg4win来打造一个安全的加密文件

2、加密一个自己用的文件

1.点击签名/加密按钮

利用Gpg4win来打造一个安全的加密文件

  1. 本次我选择z00w00.txt 文件,然后选择为我加密
    利用Gpg4win来打造一个安全的加密文件
    3.这个时候要输入刚才提示的密码了。这样的好处是防止别人偷用你的电脑帮你加密
    利用Gpg4win来打造一个安全的加密文件
    4 成功后会提示利用Gpg4win来打造一个安全的加密文件
    5.此时桌面会生成z00w00.txt.gpg文件
    利用Gpg4win来打造一个安全的加密文件
    6.这个文件拿到别的计算机上是不打开的
    利用Gpg4win来打造一个安全的加密文件
  2. 即使用记事本打开也一定是乱码
    利用Gpg4win来打造一个安全的加密文件
  3. 即使别人拿到了文件,并安装了软件,由于没有私钥,也不能解密打开,如下
    利用Gpg4win来打造一个安全的加密文件

以上就是保护自己文件的实操说明,这样你就不用担心女票经常检查你的电脑发现你有×××姐视频的不良记录了
^_^

3、加密文件给别人

下面重点说另一个问题,如何加密文件,只有指定的人才能打开

前提1: 对方需安装该软件(貌似废话)

前提2:你需要有对方的公钥

再次强调,公钥加密,私钥解密

为了完成这个测试 ,我另找了一台计算机,软件软件,创建密钥对如下:
利用Gpg4win来打造一个安全的加密文件

1、导出导入公钥

现在完成2个动作

  1. 导出it-dream的公钥
  2. 导入it-dream的公钥到z00w00下
  • 导出公钥如下:
    记得选中(高亮),然后导出
    利用Gpg4win来打造一个安全的加密文件

会导出如下类似文件
利用Gpg4win来打造一个安全的加密文件

  • 导入公钥到z00w00
    利用Gpg4win来打造一个安全的加密文件

利用Gpg4win来打造一个安全的加密文件

利用Gpg4win来打造一个安全的加密文件

利用Gpg4win来打造一个安全的加密文件

利用Gpg4win来打造一个安全的加密文件

利用Gpg4win来打造一个安全的加密文件

至此导入完成

2、加密与解密

选择,为他人加密并勾选他人的公钥
利用Gpg4win来打造一个安全的加密文件

继续会提出一个警告,继续即可
利用Gpg4win来打造一个安全的加密文件

加密成功会有提示
利用Gpg4win来打造一个安全的加密文件

由于使用对方公钥加密,如果原始文件丢失,你无法进行解密回原始文件
利用Gpg4win来打造一个安全的加密文件

现在我们让it-dream来解密吧
利用Gpg4win来打造一个安全的加密文件

由于含有签名,且z00w00并没有把公钥给it-dream,所以会报如下
利用Gpg4win来打造一个安全的加密文件

这次我们导入z00w00的公钥给it-dream就OK了
利用Gpg4win来打造一个安全的加密文件

这样就看到了原始文件
利用Gpg4win来打造一个安全的加密文件

粗体显示的是自己的秘钥

五、只签名不加密

文件签名用于对文件本身进行保护,如果原始文件被人篡改,可以证明不是原作者本人。此功能常用于软件发布,很多软件开发者为了防止自身发布的软件被反编译注入有害代码,特使用签名方式保护软件本身。

1、我们对z00w002.txt进行签名,先看原始内容
利用Gpg4win来打造一个安全的加密文件
2、取消加密勾选,输出签名文件
利用Gpg4win来打造一个安全的加密文件
3、输出签名文件
利用Gpg4win来打造一个安全的加密文件

4、现在,我们可以把签名文件z00w002.txt.sig和原始文件z00w00.txt 发给目标接受者。
在文件没有改动时,验证文件如下:
利用Gpg4win来打造一个安全的加密文件

5、现在我们篡改原始文件,增加文字如下
利用Gpg4win来打造一个安全的加密文件

6、此时再进行校验,一定会报异常
利用Gpg4win来打造一个安全的加密文件

我在实际测试时,使用签名验证,在程序执行完成时,总会报程序异常终止,经过2套系统测试,排除某WINDOWS系统的问题,初步认为是软件兼容性的问题
利用Gpg4win来打造一个安全的加密文件


推荐阅读
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细介绍了Java中的输入输出(IO)流,包括其基本概念、分类及应用。IO流是用于在程序和外部资源之间传输数据的一套API。根据数据流动的方向,可以分为输入流(从外部流向程序)和输出流(从程序流向外部)。此外,还涵盖了字节流和字符流的区别及其具体实现。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
author-avatar
玫瑰编辑1轶事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有