当前位置: 首页 > news >正文

Linux 密码学的基本知识与应用技术

一、基本知识

(一)加密算法

• 对称加密算法

• 原理:对称加密使用相同的密钥进行加密和解密。例如,在Linux中常用的AES(高级加密标准)算法,发送方和接收方都需要持有相同的密钥。假设要加密一个文件,使用AES算法和密钥将文件内容(明文)转换为密文;解密时,再用相同的密钥将密文恢复为明文。

• 特点:加密速度快,适合对大量数据进行加密,但密钥管理相对复杂,因为密钥需要安全地在通信双方之间共享。

• 非对称加密算法

• 原理:非对称加密使用一对密钥,即公钥和私钥。公钥可以公开,用于加密;私钥需要保密,用于解密。以RSA算法为例,在安全通信中,发送方可以用接收方的公钥对消息进行加密,接收方收到密文后,用自己的私钥进行解密。同时,私钥还可以用于数字签名,用于验证消息的来源和完整性。

• 特点:安全性高,解决了对称加密中密钥分发的难题,但加密速度相对较慢,主要用于对少量关键数据(如密钥交换、数字签名)进行加密。

(二)哈希函数

• 原理:哈希函数可以将任意长度的数据转换为固定长度的哈希值(也称为消息摘要)。例如,Linux中的SHA - 256哈希函数,对一个文件计算哈希值时,无论文件大小如何,输出的哈希值长度都是固定的256位。哈希函数具有单向性,即很难从哈希值反推出原始数据。而且,只要原始数据稍有变化,哈希值就会发生巨大变化。

• 应用场景:主要用于验证数据完整性和密码存储。在验证数据完整性方面,如下载文件时,网站会同时提供文件的哈希值,用户下载后可以自行计算哈希值并与提供的哈希值进行对比,若一致则说明文件在传输过程中未被篡改。在密码存储方面,系统不会直接存储用户密码,而是存储密码的哈希值,用户登录时输入密码,系统计算其哈希值并与存储的哈希值进行比较,以此验证密码是否正确。

二、应用技术

(一)文件加密与解密

• 使用GnuPG(GPG)

• GnuPG是Linux下常用的加密工具。例如,要加密一个文件,可以使用命令“gpg - -encrypt -r [接收者公钥标识] [文件名]”,这会根据接收者的公钥对文件进行加密。解密时,接收者使用自己的私钥,通过命令“gpg - -decrypt [文件名]”来恢复文件内容。

• 使用OpenSSL

• OpenSSL也是功能强大的加密工具集。对于文件加密,可以使用命令如“openssl aes - 256 - cbc -salt -in [明文文件名] -out [密文文件名] -k [密钥]”进行AES - 256加密,解密时相应地调整参数和密钥,通过命令“openssl aes - 256 - cbc -d -in [密文文件名] -out [明文文件名] -k [密钥]”来恢复文件。

(二)数字签名

• 使用GnuPG(GPG)

• 首先生成密钥对,通过命令“gpg - -gen - key”。然后,要对文件进行数字签名,使用命令“gpg - -sign [文件名]”,这会使用私钥生成文件的签名。其他人可以使用签名者的公钥来验证签名,通过命令“gpg - -verify [签名文件名] [原文件名]”,以此来确认文件的来源和是否被篡改。

• 使用OpenSSL

• 同样先创建密钥对,对于RSA密钥对可以使用“openssl genrsa -out [私钥文件名] [密钥长度]”和“openssl rsa -in [私钥文件名] -pubout -out [公钥文件名]”。数字签名时,先计算文件的哈希值,然后用私钥对哈希值进行签名。验证签名时,用公钥对签名进行验证,确保文件的完整性和来源真实性。

相关文章:

Linux 密码学的基本知识与应用技术

一、基本知识 (一)加密算法 • 对称加密算法 • 原理:对称加密使用相同的密钥进行加密和解密。例如,在Linux中常用的AES(高级加密标准)算法,发送方和接收方都需要持有相同的密钥。假设要加密…...

【力扣】2094.找出3为偶数

思路 方法一:使用Set集合 1.首先是三层for循环,遍历,并且遇到不满足的情况,便跳过,继续计算。不如前导为0,以及遍历同一个数组下标的情况 2.使用Set集合来确保答案是唯一的,使用桶来标记也是可以的 3.但是…...

【信息系统项目管理师】【综合知识】【备考知识点】第十四章 项目沟通管理

【移动端浏览】☞【信息系统项目管理师】第十四章 项目沟通管理 第十四章 项目沟通管理 (项目沟通管理)定义 项目沟通管理是确保及时、正确地产生、收集、分发、存储和最终处理项目信息所需的过程。 (项目沟通管理)组成部分 (…...

CTFshow黑盒测试刷题

web380 先扫目录 打开 报错了 先用伪协议去查看源码 之前扫到有flag.php 访问一下 就得到flag了 web381 查看一下源码 点击第三个css 藏在目录里面 web382 跟上题一样 不过访问这个页面是一个登录框 试一下弱口令 最后是admin admin888 就进去了 web383 进入这个后台 …...

抖音矩阵系统快速部署指南/抖音矩阵系统源码分发,短视频矩阵账号管理系统开发部署—

抖音矩阵系统的源码分发与短视频账号管理平台的开发部署,要求通过对接官方API来实现功能的拓展。当前开发的账号矩阵管理系统专注于提供一键式管理多个账户的能力,支持定时发布内容、自动化关键词生成以实现搜索引擎优化(SEO)和霸…...

windows文件下换行, linux上不换行 解决CR换行符替换为LF notepad++

html文件是用回车换行的,在windows电脑上,显示正常。 文件上传到linux服务器后,文件不换行了。只有一行。而且相关js插件也没法正常运行。 用notepad查看,显示尾部换行符,是CR,这就是原因。CR是不被识别的。…...

服务器数据恢复—硬盘掉线导致热备盘同步失败的RAID5阵列数据恢复案例

服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障&#…...

活着就好20411205

5号亲爱的朋友们,大家早上好!🌞 今天是5号,星期四,2024年12月的第五天,同时也是第49周的第四天,农历甲辰[龙]年十一月初一日。在这晨曦初露的美好时刻,愿第一缕柔和的阳光悄悄探进你…...

JDK8 下载与安装

下载安装包 官网下载 官网 找到适合的版本: 网盘下载 网盘链接 提取码: 6666 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装路径不要有中文或者特殊符号如空格等. 更改安装路径: 跳出一个页面, 安装公共 JRE: 安装完成: 安装目录: 安装的公共 JRE: JDK 里面的 JR…...

基于MATLAB的信号处理工具:信号分析器

信号(或时间序列)是与特定时间相关的一系列数字或测量值,不同的行业和学科将这一与时间相关的数字序列称为信号或时间序列。生物医学或电气工程师会将其称为信号,而统计学家或金融定量分析师会使用时间序列这一术语。例如&#xf…...

Docker Compose 和 Kubernetes 之间的区别?

一、简介🎀 1.1 Docker Compose Docker Compose 是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,可以管理多个 Docker 容器组成一个应用。你只需定义一个 YAML 格式的配置文件 docker-compose.yml ,即可创建并…...

uniapp远程摄像头流界面上显示

用到的插件:dplayer、hls dplayer官网:dplayer 远程摄像头视频流格式:m3u8 可以用来测试的视频流(有的用不了,多试几个,找可以用的):m3u8测试视频 安装hls,任选其一 npm…...

写译 Essay | Translation

单词 参考上篇 总结写译热点单词 | 50篇文章整理 | 手敲自用-CSDN博客 文化类词汇: 包括传统节日及相关活动,如春节(Spring Festival)、中秋节(Mid-Autumn Festival)等。 涵盖中国特色艺术和工艺品,如京剧(Peking opera)、中国画(traditi…...

知乎大数据开发面试题及参考答案

Java 两个线程之间是怎么通信的,属于哪种机制? 在 Java 中,线程间通信主要有以下几种方式: 共享变量:线程可以通过访问共享变量来进行通信。例如,一个线程修改一个共享的成员变量,另一个线程读取这个变量的值。但是这种方式需要注意线程安全问题。如果多个线程同时访问和…...

C# 绘制GDI红绿灯控件

C# 绘制GDI红绿灯控件 using System; using System.Windows.Forms; using System.Drawing;public class TrafficLightControl : Control {protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics g e.Graphics;g.SmoothingMode System.Drawing.Drawin…...

网络安全-使用HTTP动词篡改的认证旁路

这个东西去年的安全扫描都没有,今天就扫出来了,非常奇怪的一个东西。好吧,找资料找原因。结果可能应为搜索名词的原因,这个问题在群友的帮助下解决了。 在我理解中servlet只有post和get方法,然后结果怎么出来这么多奇…...

多种MyBatis写法(数据库操作)

MyBatis,这个从iBatis演变而来的Java持久层框架,凭借其强大的功能和性能,早已成为企业级应用的首选。本文展示几种MyBatis写法,保证数据库操作既高效又灵活。 1. 批量操作 批量操作是提升数据库操作效率的重要手段。MyBatis提供…...

centos 手动安装libcurl4-openssl-dev库

下载源代码 curl downloadshttps://curl.se/download/ 选择需要下载的版本,我下载的是8.11.0 解压 tar -zxvf curl-8.11.0 查看安装命令 查找INSTALL.md,一般在docs文件夹下 –prefix :指定安装路径(默认安装在/usr/local&…...

C#中的模拟服务器与客户端建立连接

创建一个控制台项目,命名为Server,模拟服务器端。在同一个解决方案下,添加新项目,命名为Client,模拟客户端。在服务器端与客户端之间建立TCP连接,并在客户端发送消息,在服务器端输出。 Server项目具体要求: 1.在Server项目中,用本机端点建立TcpListener对象,进行监…...

论文阅读——Supervised Learning With Quantum-Inspired Tensor Networks

张量网络是高维张量的有效表示,在物理和数学应用中非常成功。我们展示了如何通过使用矩阵乘积状态(张量训练)来参数化用于对图像进行分类的模型,将优化此类网络的算法应用于监督学习任务。对于 MNIST 数据集,我们获得的…...

HTML5系列(11)-- Web 无障碍开发指南

前端技术探索系列:HTML5 Web 无障碍开发指南 ♿ 致读者:构建人人可用的网络 👋 前端开发者们, 今天我们将深入探讨 Web 无障碍开发,学习如何创建一个真正包容、人人可用的网站。让我们一起为更多用户提供更好的网络…...

信号和槽思维脑图+相关练习

将登录框中的取消按钮使用信号和槽的机制,关闭界面。 将登录按钮使用信号和槽连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是否为"123456",如果账号密码匹配成功,当前界面关…...

Scala编程基础:模式匹配、解构赋值与正则表达式

在Scala编程语言中,模式匹配、解构赋值和正则表达式是三个非常强大的特性,它们可以让我们以更简洁、更直观的方式处理数据。本文将通过三个示例,详细解释这些特性的使用方法和背后的原理。 1. 模式匹配与case class 模式匹配是Scala中处理数…...

【大数据技术基础】 课程 第1章 大数据技术概述 大数据基础编程、实验和案例教程(第2版)

第1章 大数据技术概述 1.1 大数据时代 这本书的标题是《大数据时代》,副标题为“生活、工作与思维的大变革”。这本书由维克托迈尔-舍恩伯格(Viktor Mayer-Schnberger)和肯尼斯库克耶(Kenneth Cukier)合著&#xff0c…...

【基础分析】——宏参数连接

示例1&#xff1a; #include<stdio.h>#define STR1(s) #s#define FUN1(a,b) (int)(a##e##b)int main(int argv, char* agrc[]) {printf(STR1(king...));printf("\n");printf("%d\n", FUN1(2, 3));return 0; } 结果&#xff1a; &#xff08;注&…...

算法3--二分查找

二分查找 原理经典例题[704. 二分查找](https://leetcode.cn/problems/binary-search/)[34. 在排序数组中查找元素的第一个和最后一个位置](https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/)[35. 搜索插入位置](https://leetcode.cn/p…...

【信息系统项目管理师】第7章:项目立项管理 考点梳理

文章目录 7.1 项目建议与立项申请7.2 项目可行性研究7.2.1 可行性研究的内容7.2.2 初步可行性研究7.2.3 详细可行性研究&#xff08;重点&#xff09; 7.3 项目评估与决策 【学习建议】本章大概考选择题2分左右&#xff0c;有可能考案例题。论文早年考过。本章知识点比较集中&a…...

帝可得-策略管理

策略管理 需求说明 策略管理主要涉及到二个功能模块&#xff0c;业务流程如下&#xff1a; 新增策略: 允许管理员定义新的策略&#xff0c;包括策略的具体内容和参数&#xff08;如折扣率&#xff09;策略分配: 将策略分配给一个或多个售货机。 #mermaid-svg-PSQOJMLJqVGn3W…...

opencv-android编译遇到的相关问题处理

1、opencv-android sdk下载 下载地址&#xff1a;https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细&#xff0c;大家可安装官方给出的步骤导入。…...

汽车IVI中控开发入门及进阶(三十六):QML调用蓝牙sdk的架构

Qt/QML本身在做GUI界面工程时,除了各种界面上的按钮、图片、工具条等元素之外,最方便的就是可以通过C++实现界面各种复杂逻辑,而实现上不可避免就需要一些外部库的支持,不管是静态库.a还是动态库.so,比如蓝牙模块。 而QML/C++启动一个蓝牙协议栈SDK作为一个进程,然后启动…...

C++设计模式之外观模式

动机 下图中左边方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合&#xff0c;随着外部客户程序和各子系统的演化&#xff0c;这种过多的耦合面临很多变化的挑战。 如何简化外部客户程序和系统间的交互接口&#xff1f;如何将外部客户程序的演化和内部子系统…...

前缀和篇——繁星斗斗数字交织中,觅得效率明月辉光(1)

前言 在这片无边无际的数字海洋中&#xff0c;如何从中提取出有价值的讯息&#xff0c;成为了计算机科学中的一项重要课题。前缀和算法&#xff0c;作为一种巧妙的技术&#xff0c;恰如其名——通过计算序列中各个元素的前缀和&#xff0c;能够为我们提供一种高效的查询方式&a…...

【论文复现】隐式神经网络实现低光照图像增强

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 隐式神经网络实现低光照图像增强 引言那么目前低光照图像增强还面临哪些挑战呢&#xff1f; 挑战1. 不可预测的亮度降低和噪声挑战2.度量友好…...

Secured Finance 推出 TVL 激励计划以及基于 FIL 的稳定币

Secured Finance 是新一代 DeFi 2.0 协议&#xff0c;其正在推出基于 FIL 的稳定币、固定收益市场以及具有吸引力的 TVL 激励计划&#xff0c;以助力 Filecoin 构建更强大的去中心化金融生态体系&#xff0c;并为 2025 年初 Secured Finance 协议代币的推出铺平道路。Secure Fi…...

2024前端框架年度总结报告(二):新生qwik+solid和次新生svelte+Astro对比 -各自盯着前端的哪些个痛点 - 前端的区域发展差异

引言 2024年&#xff0c;前端开发依然是技术领域的热点之一。随着 Web 应用的日益复杂&#xff0c;前端框架的更新换代也加速了。尽管 React、Vue 和 Angular 老牌框架年度总结 等“老牌”框架仍然占据着主流市场&#xff0c;但一些新兴的框架在不断挑战这些“巨头”的地位&am…...

MySQL大小写敏感、MySQL设置字段大小写敏感

文章目录 一、MySQL大小写敏感规则二、设置数据库及表名大小写敏感 2.1、查询库名及表名是否大小写敏感2.2、修改库名及表名大小写敏感 三、MySQL列名大小写不敏感四、lower_case_table_name与校对规则 4.1、验证校对规则影响大小写敏感4.1、验证校对规则影响排序 五、设置字段…...

每日速记10道java面试题13-MySQL篇

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...

关于Chrome自动同步书签的解决办法

前言 并不一定适用所有用户&#xff0c; 目前我在网上搜集了一些资料&#xff0c;也做了一些尝试。 就我个人总结的经验来讲&#xff0c;分享大家以下几种办法&#xff1a; 1.书签同步插件 点击如下&#x1f517;&#xff1a; Chrome书签同步https://bm.famend.cn/ …...

江南大学《2024年807自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《江南大学807自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2024年真题 Part1&#xff1a;2024年完整版真题 2024年真题...

在VSCode中搭建Python开发环境

在VSCode中搭建Python开发环境 1、安装 首先确保电脑已经安装好Python和VSCode。 2、安装VSCode的Python插件 3、选择python解释器 ctrlshiftP打开VSCode的命令行&#xff0c;输入python: select Interpreter选择合适的python版本。 4、运行代码 在windows下你可以直接使用…...

mac 安装python3和配置环境变量

mac 安装python3和配置环境变量 前言怎样选择python3的版本python3的安装1、去官网下载安装包2、下载完成后直接解压,检查安装是否成功 前言 在学习python的第一步就是安装它和配置他的环境变量&#xff0c;那么选择哪个版本的python你可曾知道&#xff0c;下面就讲解怎样选择…...

微信小程序版小米商城的搭建流程详解!

很多初学微信小程序语法的同学&#xff0c;可能不知道如何布局和搭建一个项目&#xff0c;下面我将讲解初学者如何搭建项目和注意事项。 一、 app.json的配置 {"pages": ["pages/index/index","pages/classification/classification","pag…...

Redis等Spring Cache 框架 实现基于注解的缓存功能

Spring Cache 框架 实现基于注解的缓存功能 底层 基于代理技术 一旦进入方法就进入代理对象 如果redis里有就直接返回 不会走方法 如果缓存没有数据 则通过反射走方法。 概念 缓存 相当于之前的事务处理 同步更改 只是提供了一层抽象 底层可以切换不同的缓存实现 EHCach…...

tcpreplay/tcpdump-重放网络流量/捕获、过滤和分析数据包

tcpdump 是一个网络数据包分析工具&#xff0c;通过捕获并显示网络接口上传输的数据包&#xff0c;帮助用户分析网络流量。 原理&#xff1a;用户态通过 libpcap 库控制数据包捕获&#xff0c;内核态通过网卡驱动获取数据包。 核心功能包括&#xff1a;捕获、过滤和分析数据包…...

【Linux】基础IO_文件系统IO_“一切皆文件”_缓冲区

目录 1. 理解"⽂件" 1-1 狭义理解 1-2 ⼴义理解 1-3 ⽂件操作的归类认知 1-4 系统⻆度 访问文件&#xff0c;需要先打开文件&#xff01;那么是由谁打开文件&#xff1f;&#xff1f;&#xff1f; 操作系统要不要把被打开的文件管理起来&#xff1f; 2. 回顾…...

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器&#xff08;模块化编写&#xff09; 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…...

Mnesia(三)

在表中保存复杂数据 Mnesia是被设计用来保存Erlang数据结构的。可以把任意类型的Erlang数据结构保存到Mnesia表中。 -export([init_mnesia_schema/0, start/0]). -export([add_plans/0, get_plan/1]). -include_lib("stdlib/include/qlc.hrl"). -record(shop, {ite…...

ELK的Filebeat

目录 传送门前言一、概念1. 主要功能2. 架构3. 使用场景4. 模块5. 监控与管理 二、下载地址三、Linux下7.6.2版本安装filebeat.yml配置文件参考&#xff08;不要直接拷贝用&#xff09;多行匹配配置过滤配置最终配置&#xff08;一、多行匹配、直接读取日志文件、EFK方案&#…...

【WPF中ControlTemplate 与 DataTemplate之间的区别?】

前言 WPF中ControlTemplate 与 DataTemplate之间的区别&#xff1f; 1. 定义&#xff1a; ControlTemplate 是用于定义 WPF 控件的外观和结构的模板。它允许您重新定义控件的视觉表现&#xff0c;而不改变控件的行为。 DataTemplate 是用于定义如何呈现数据对象的模板。它通…...

FFmpeg源码中,计算CRC校验的实现

一、CRC简介 CRC(Cyclic Redundancy Check)&#xff0c;即循环冗余校验&#xff0c;是一种根据网络数据包或电脑文件等数据产生简短固定位数校核码的快速算法&#xff0c;主要用来检测或校核数据传输或者保存后可能出现的错误。CRC利用除法及余数的原理&#xff0c;实现错误侦…...