如何在 Linux 中使用 GPG 加密和解密文件?

news2024/11/24 20:03:57

什么是 GPG?

GPG(GNU Privacy Guard)是一种免费的开源加密软件,用于保护计算机数据的机密性和完整性。

它使用非对称加密算法,也称为公钥加密算法,其中数据被加密和解密时使用不同的密钥。每个用户都有一个公钥和一个私钥,其中公钥可以与其他用户共享,而私钥应仅由拥有者保持安全。

GPG 被广泛用于 Linux 操作系统中的加密和签名,使用户可以轻松地保护他们的敏感数据并确保其完整性。

安装 GPG

在 Linux 中安装 GPG 可以使用系统的包管理器进行安装。不同的发行版有不同的包管理器,以下是一些常见的包管理器和对应的命令:

  • Ubuntu / Debian:sudo apt-get install gnupg
  • CentOS / RHEL:sudo yum install gnupg
  • Arch Linux:sudo pacman -S gnupg

安装完成后,可以使用以下命令来验证 GPG 是否已成功安装:

gpg --version

创建 GPG 密钥对

在使用 GPG 加密和解密文件之前,需要创建 GPG 密钥对。密钥对包括公钥和私钥,其中公钥可以与他人共享,而私钥应该保密。

生成 GPG 密钥对

要生成新的 GPG 密钥对,请使用以下命令:

gpg --gen-key

该命令将打开一个交互式窗口,其中会提示您输入以下信息:

  • 选择密钥类型和密钥大小
  • 输入您的姓名和电子邮件地址
  • 输入您的密码短语

完成后,系统将生成您的密钥对并存储在默认的 GPG 密钥环中。

导出公钥

在将文件加密并发送给其他人之前,需要导出您的公钥,以便其他人可以使用该密钥来加密数据。要导出您的公钥,请使用以下命令:

gpg --export -a "Your Name" > publickey.asc

这将导出您的公钥并将其存储在名为 “publickey.asc” 的文件中。

加密和解密文件

现在,您已经创建了自己的 GPG 密钥对并导出了公钥,可以开始使用 GPG 加密和解密文件了。

加密文件

要使用 GPG 加密文件,请使用以下命令:

gpg --encrypt --recipient "Recipient Name" file.txt

该命令将使用接收者的公钥来加密文件并将其保存在同一目录下的 “file.txt.gpg” 中。

解密文件

要解密 GPG 加密的文件,请使用以下命令:

gpg --decrypt file.txt.gpg

该命令将提示您输入密码短语,然后解密文件并将其保存在同一目录下的 “file.txt” 中。

签名和验证文件

使用 GPG 还可以对文件进行签名和验证以确保其完整性和真实性。文件签名是通过使用发送者的私钥来生成的,而验证是通过使用发送者的公钥进行的。

签名文件

要使用 GPG 对文件进行签名,请使用以下命令:

gpg --sign file.txt

该命令将使用您的私钥对文件进行签名,并将签名保存在同一目录下的 “file.txt.sig” 中。

验证文件

要验证已签名的文件,请使用以下命令:

gpg --verify file.txt.sig file.txt

该命令将使用您的公钥来验证文件的签名,并输出签名信息和验证结果。

总结

使用 GPG 可以轻松地加密和解密文件以及对文件进行签名和验证,以确保其机密性、完整性和真实性。在 Linux 中,GPG 已成为保护计算机数据的主要工具之一,安装和使用也非常方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】类与对象(2)

【C】类与对象(2) 作者:爱写代码的刚子 时间:2023.5.4 本篇博客有关构造函数、析构函数、拷贝构造的知识,由于本篇博客可能比较详细,还剩一些内容没介绍,所以我将剩余的知识放在下一篇博客。 目…

探究Spring中Bean的线程安全性问题

前言 今天同事笑嘻嘻的凑过来,问了我一个问题:spring中的bean是线程安全的吗?。我内心一想肯定是安全的,毕竟这样多项目在用。但是转念一想,他那贱兮兮的表情,多半是在给我挖坑。于是我自信的回答他&#x…

如何在 DigitalOcean 中部署 ONLYOFFICE 文档

现在您可使用通过 DigitalOcean 市场提供的一键式应用在 DigitalOcean 云架构中轻松部署 Docker 版本的 ONLYOFFICE 文档。 一键式应用是一个包含所有必要预配置组件的镜像,可用于便捷地在运行有 Ubuntu OS 的 DigitalOcean 服务器上部署 ONLYOFFICE: D…

单元测试~

文章目录 单元测试Junit单元测试框架 单元测试 Junit单元测试框架

客户端无法连接docker启动的nacos-config服务

nacos踩坑记录: 基于镜像仓库教程 : https://hub.docker.com/r/nacos/nacos-server 在虚拟机启动了nacos服务,控制台可以正常打开.但是客户端无法正确连接.但是又没有明确的异常信息,只有一行warn日志:There is no content for NacosPropertySource from dataId[application.ym…

面试必问的【网络io】,1.5W字超全面总结

今天分享的基本上一面试就会被问的网络IO。文中涉及的代码部分不太重要,重要的是对这概念的理解。在看文章之前大家也可通过下面的思维导图看看自己是否能回答出来。 ​大纲 1 阻塞与非阻塞--开胃菜 阻塞 我们知道在调用某个函数的时候无非就是两种情况&#xff0…

1553B总线与FlexRay总线的协议转换

1553B总线与FlexRay总线的协议转换 背景技术: 某一1553B数字时分系统,存在响应型和周期型两种类型的指令传输。如果在1553B总线上传输周期型指令,不仅会造成BC->RT调度指令的大量重复,还存在BC设备和RT设备时间不同步的风险&a…

API 渗透测试从入门到精通系列文章(下)

导语:在本系列文章的前面一部分我们从使用 Postman 开始,创建了集合和请求,并通过 Burp Suite 设置为了 Postman 的代理,这样我们就可以使用 Burp 的模糊测试和请求篡改的功能。 在本系列文章的前面一部分我们从使用 Postman 开始…

Unity 后处理(Post-Processing) -- (3)挑战:创建局部后处理Volume

为何使用局部Volume 在前面两节中,我们使用了一个Global Volume来应用后处理,其作用范围是整个场景。有些时候,我们需要实现当角色靠近某个地点后,进行一些特殊的后处理。这时我们就需要使用Local Volume来实现这个功能。 举个例子…

网络安全就业岗位与薪资

前段时间,知名机构麦可思研究院发布了《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,*信息安全位列第一。* 对于网络安全的发展与就业前景已经说过很多,它是收入较高的岗位之一,在转行领域也占据着…

大津算法ostu

大津算法是一种自适应图像二值化方法。 它以最大化类内距离或最小化类间距离为优化目标,将图像从某一亮度阈值分为前景/背景。 其基本原理示意图如下: 1.前言 为了深入介绍此算法,先说明一些背景知识。 1.1 数据可分性 数据可分性通常使…

【视频解读】动手学深度学习V2_01课程介绍

1.概述 这门课程主要介绍深度学习经典和最新模型。从最简单、最老的80年代的Lenet,讲到计算机视觉比较流行的Resnet,以及经典的时序模型LSTM以及最近比较流行的BERT。当然我们在讲深度学习时,我们离不开机器学习,机器学习的很多基础知识是我们需要的&…

关于OLED屏的笔记

OLED即有机发光管(Organic Light-Emitting Diode,OLED)。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代的平面显示屏新兴应用技术。 OLED显示和传统的LCD显…

英文论文(sci)解读复现【NO.6】ASFF-YOLOv5:基于多尺度特征融合的无人机图像道路交通多元检测方法

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

Xceed Ultimate Suite 22.3 Crack

Xceed Ultimate Suite 22.3 Crack  Xceed Ultimate Suite是最完整的包括所有用户的工具,并设置所有Xceed和计算机连接以生成书面数据。Xceed Ultimate Suite还为用户提供了140多个预先编写的比较。 Xceed Ultimate Suite公司的功能和特点: -包括.NET在内…

Linux shell脚本 扩展补充示例

通过变量切片、获取变量长度、产生随机数、合并字符串 最后生成随机密码 变量切片、获取变量长度 [xuexue ~]$ a1234567890 [xuexue ~]$ echo $a [xuexue ~]$ echo ${a} [xuexue ~]$ echo ${#a} #获取变量长度 [xuexue ~]$ echo ${a:3:3} #切片,第4个开始获取三个…

力扣题库刷题笔记646-最长数对链

1、题目如下: 2、题解思路代码实现: 本题算是到目前为止,代码能读懂,但是思路并不能完全理解的代码(大概能理解,但是无法完全描述,不看题解不能做出),涉及到贪心和排序。…

07_Uboot顶层Makefile分析_make xxx_defconfig

目录 make xxx_defconfig 过程 Makefile.build 脚本分析 scripts_basic 目标对应的命令 %config 目标对应的命令 make xxx_defconfig 过程 在编译uboot之前要使用"make xxx_defconfig"命令来配置uboot,那么这个配置过程是如何运行的呢?在顶层Makefile中有如下代…

C++类模板

类模板和函数模板语法相似&#xff0c;在声明模板template后面加类&#xff0c;此类称为类模板. 类模板作用&#xff1a; 建立一个通用类&#xff0c;类中的成员 数据类型可以不具体制定&#xff0c;用一个虚拟的类型来代表。 语法&#xff1a; template<typename T> …

深入解析PyTorch中的模型定义:原理、代码示例及应用

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…