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

密码技术 (1) - 对称密码

一. 前言

        对称密码是指加密数据和解密数据使用的是相同的秘钥。发送者使用秘钥将加密后的数据发送给接受者,接收者收到数据后用相同的秘钥解密,恢复原始数据。

        对称密码具有加密和解密快速的特点,适用于需要快速加密的场景,常用的对称加密算法有DES,3DES和AES等等。接下来将对这些算法做些简单的介绍。

二. 加密方法

1. DES

        DES加密算法是由IBM公司于1970年代开发,并于1977年被美国国家标准局(NIST)采纳为联邦信息处理标准(FIPS),成为当时广泛使用的标准。

        但是随着计算机的处理速度越来越快,DES已经能够被暴力破解了,安全性越来越低了。1999年的DES Challenge III中,只用了22小时15分钟就被破解了,现在可想而知。所以已经非常不建议使用了。

2. 3DES

        3DES是将DES重复3次得到的密码的算法。3DES的三次操作分别是加密,解密和加密,就涉及到三个密码,这三个密码可以是任意的,如果三个密码是相同的,则和DES的效果是一样的,因为明文用相同秘钥加密一次和解密一次得到的还是明文,最后相当于只进行了一次DES。三次DES密码不相同,被称为DES-EDE3,如果第一次和第三次使用相同的秘钥,第二次使用不同的秘钥,则称为DES-EDE2。

        由于3DES需要进行三次DES操作,所以处理速度不高,除了特别重视向下兼容性的场景,很少被用于新的用途。

3. AES

        AES是对称密码的新标准,取代了之前的DES。AES的密码算法选拔活动是由美国NIST举办的,并要求:一种算法要成为AES标准算法,需要免费无条件供全世界使用。后来全世界的企业和密码学家提交了多个算法作为候选,最终Rijndael算法在2000年被选为AES对称加密算法。

        AES算法有AES128,AES192和AES256,分别表示AES支持的秘钥的位数分别为128位(16字节),192位(24字节)和256位(32字节)。

三. openssl实践

        openssl命令使用enc选项用于对称加密,可以使用openssl enc -list命令,可以列出当前openssl支持对称加密算法,下面是使用openssl通过DES,3DES和AES三种加密方式加密的示例命令:

1. DES

infile内容:

ni hao, china!

加密操作:

openssl enc -des -e -pass pass:123456 -in infile -out outfile

outfile内容:十六进制显示如下

00000000  53 61 6c 74 65 64 5f 5f  54 a1 e3 4e 61 07 ea 5b  |Salted__T..Na..[|
00000010  51 5b d9 dc 51 92 86 ff  23 67 45 3f 7f a8 e6 81  |Q[..Q...#gE?....|

解密操作:

openssl enc -des -d -pass pass:123456 -in outfile -out decryptfile

decryptfile内容:

ni hao, china!

2. 3DES

infile内容:

ni hao, 3des

加密操作:

openssl enc -des3 -e -pass pass:123456 -in infile -out outfile

outfile内容:十六进制显示

00000000  53 61 6c 74 65 64 5f 5f  70 d1 a0 d0 ca 15 2d cd  |Salted__p.....-.|
00000010  fb 10 29 2f 37 78 21 9a  31 2a da 74 20 c8 ab 1b  |..)/7x!.1*.t ...|


解密操作:

openssl enc -des3 -d -pass pass:123456 -in outfile -out decryptfile

decryptfile内容:

ni hao, 3des

3. AES

infile内容:

ni hao, china!

加密操作:

openssl enc -aes128 -e -pass pass:123456 -in infile -out outfile

outfile内容:十六进制显示

00000000  53 61 6c 74 65 64 5f 5f  f5 5f e3 80 f6 8d 68 02  |Salted__._....h.|
00000010  36 59 71 4a 36 ce 58 ab  62 04 a7 70 32 81 e3 c1  |6YqJ6.X.b..p2...|

解密操作:

openssl enc -aes128 -d -pass pass:365478 -in infile -out decryptfile

decryptfile内容:

ni hao, china!

四. 总结

        本文主要介绍了对称加密的概念以及对称加密的三种算法:DES,3DES和AES,并对他们的特点以及现状做了简单的介绍,DES和3DES都是不推荐使用了,目前推荐使用AES加密算法。最后介绍了这三种加密方式是怎样通过openssl命令进行实施的。本文没有对加密算法的具体细节做介绍,后续有机会再研究。

        对称加密没有办法解决秘钥传送的问题,也就是没法把密码只告知到通信的对方。直接将秘钥发送给要通信的对方,窃听者可以截取到密码的明文,窃听者利用秘钥既可以假冒发送者给接收者发消息,也可以解密发送者的消息,通信是不安全的。

相关文章:

密码技术 (1) - 对称密码

一. 前言 对称密码是指加密数据和解密数据使用的是相同的秘钥。发送者使用秘钥将加密后的数据发送给接受者,接收者收到数据后用相同的秘钥解密,恢复原始数据。 对称密码具有加密和解密快速的特点,适用于需要快速加密的场景,常用的…...

基于PYQT5的GUI开发系列教程【二】QT五个布局的介绍与运用

目录 本文概述 作者介绍 创建主窗口 水平布局 垂直布局 栅格布局 分裂器水平布局 分裂器垂直布局 自由布局 取消原先控件的布局的方法 尾言 本文概述 PYQT5是一个基于python的可视化GUI开发框架,具有容易上手,界面美观,多平台…...

Cadence PCB 焊盘和封装

封装(Packaging) 封装指的是在电子元件制造中将电子元件(例如集成电路芯片、电子元器件等)进行物理保护和连接的过程。封装通常涉及将电子元件封装到外部保护壳或包装中,以确保其正常运作、连接到电路板并保护它们免受环境因素的影响。 封装的主要目标包括以下几个方面:…...

正在等待操作系统重新启动。 请重新启动计算机以安装autocad 2024。

正在等待操作系统重新启动。 请重新启动计算机以安装autocad 2024。 这是刚启动Autodesk 2024产品就弹出的弹窗,重启之后启动还是有这个 一直阻止安装程序运行 出现问题的原因是安装包存在问题 使用正确的安装包即可解决这个问题 需要的朋友查看图片或者评伦取…...

Windows电脑显示部分功能被组织控制

目录 问题描述 解决方法 总结 问题描述 如果你的电脑出现以上情况,建议你使用我这种方法(万不得已) 解决方法 原因就是因为当时你的电脑在激活的时候是选择了组织性激活的,所以才会不管怎么搞,都无法摆脱组织的控…...

Django模板加载与响应

前言 Django 的模板系统将 Python 代码与 HTML 代码解耦,动态地生成 HTML 页面。Django 项目可以配置一个或多个模板引擎,但是通常使用 Django 的模板系统时,应该首先考虑其内置的后端 DTL(Django Template Language,D…...

Python 内置函数详解 (4) 类型转换

Python 内置函数 Python3.11共有75个内置函数,其来历和分类请参考:Python 新版本有75个内置函数,你不会不知道吧_Hann Yang的博客-CSDN博客https://blog.csdn.net/boysoft2002/article/details/132520234 函数列表 abs aiter all …...

SpringBoot之Web原生组件注入

文章目录 前言一、原生注解方式注入二、Spring方式注入三、切换web服务器与定制化总结 前言 注入Web原生Servlet、Filter、Listeber以及切换Web服务器。 一、原生注解方式注入 官方文档 - Servlets, Filters, and listeners Servlet注入: WebServlet(urlPattern…...

[每周一更]-(第64期):Dockerfile构造php定制化镜像

利用php官网镜像php:7.3-fpm,会存在部分插件缺失的情况,自行搭建可适用业务的镜像,才是真理 Dockerhub 上 PHP 官方基础镜像主要分为三个分支: cli: 没有开启 CGI 也就是说不能运行fpm。只可以运行命令行。fpm: 开启了CGI&#x…...

若依不分离+Thymeleaf select选中多个回显

项目中遇到的场景&#xff0c;亲测实用 表单添加时&#xff0c;select选中多个&#xff0c;编辑表单时&#xff0c;select多选回显&#xff0c;如图 代码&#xff1a; // 新增代码 <label class"col-sm-3 control-label">通道&#xff1a;</label><…...

OCX 添加方法和事件 HTML调用ocx函数及回调 ocx又调用dll VS2017

ocx添加方法 类视图 最后面的XXXXXlib 右键 添加 添加方法。 其它默认 添加事件 类视图 最后面的XXXXX 右键 添加 添加事件。 这样编译就ocx可以了。 #include <iostream> #include <string> #include <comutil.h>CMFCActiveXControlSmartPosCtrl* …...

苹果iPhone手机使用草柴返利APP查询领取淘宝天猫京东优惠券如何取消关闭粘贴商品链接时的弹窗提示?

使用苹果手机在淘宝或京东复制商品链接&#xff0c;到草柴APP粘贴时总是弹窗提示&#xff0c;如何关闭苹果手机粘贴弹窗的提示&#xff1f; 苹果手机如何关闭粘贴弹窗提示&#xff1f; 1、在草柴APP内&#xff0c;点击底部「我的」接着点击「系统设置」进入&#xff1b; 2、进…...

主机安装elasticsearch后无法登陆

问题描述 2023年7月31日11点02分&#xff0c;主机安装elasticsearch后无法登陆&#xff0c;通过后台查看主机宕机状态&#xff0c;CPU达到100%&#xff0c;按业务侧要求执行重启操作后发现主机黑屏无法正常进入系统&#xff0c;系统卡死。 2&#xff0e;原因分析 2.1通过故障…...

【面试题精讲】JavaSe和JavaEE的区别

“ 有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top ” 首发博客地址[1] 文章更新计划[2] 系列文章地址[3] 1. 什么是 JavaSE 和 JavaEE? JavaSE&#xff08;Java Platform, Standard Edition&#…...

React 全栈体系(十五)

第八章 React 扩展 一、setState 1. 代码 /* index.jsx */ import React, { Component } from reactexport default class Demo extends Component {state {count:0}add ()>{//对象式的setState/* //1.获取原来的count值const {count} this.state//2.更新状态this.set…...

【逆向】(c++)分析pe结构,拉伸pe结构,缩小pe结构

建议大家认认真真写一遍&#xff0c;收获蛮大的&#xff0c;是可以加深对pe结构的理解&#xff0c;尤其是对指针的使用&#xff0c;和对win32的一些宏的定义的理解和使用。 #include <windows.h> #include <iostream> #include <string>using namespace std…...

PyTorch实战:常用卷积神经网络搭建结构速览

目录 前言 常用卷积神经网络 1.AlexNet 2.VGGNet 3.GoogLeNet 4.ResNet 总览 前言 PyTorch可以说是三大主流框架中最适合初学者学习的了&#xff0c;相较于其他主流框架&#xff0c;PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是&#xff0c;框架…...

排序算法之【快速排序】

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…...

声明式调用 —— SpringCloud OpenFeign

Feign 简介 Spring Cloud Feign 是一个 HTTP 请求调用的轻量级框架&#xff0c;可以以 Java 接口注解的方式调用 HTTP 请求&#xff0c;而不用通过封装 HTTP 请求报文的方式直接调用 Feign 通过处理注解&#xff0c;将请求模板化&#xff0c;当实际调用的时候传入参数&#x…...

LuatOS-SOC接口文档(air780E)-- fota - 底层固件升级

fota.init(storge_location, len, param1)# 初始化fota流程 参数 传入值类型 解释 int/string fota数据存储的起始位置 如果是int&#xff0c;则是由芯片平台具体判断 如果是string&#xff0c;则存储在文件系统中 如果为nil&#xff0c;则由底层决定存储位置 int 数据存…...

半导体仿真进阶:如何用Silvaco DOPING语句精确控制掺杂分布

半导体仿真进阶&#xff1a;如何用Silvaco DOPING语句精确控制掺杂分布 在半导体器件设计与工艺开发中&#xff0c;精确控制掺杂分布是决定器件性能的关键因素之一。Silvaco TCAD工具链中的DOPING语句&#xff0c;为工程师提供了从简单均匀掺杂到复杂梯度分布的灵活控制能力。…...

打破数据标注瓶颈:Label Studio如何让AI训练效率提升300%?

打破数据标注瓶颈&#xff1a;Label Studio如何让AI训练效率提升300%&#xff1f; 【免费下载链接】label-studio Label Studio is a multi-type data labeling and annotation tool with standardized output format 项目地址: https://gitcode.com/GitHub_Trending/la/labe…...

别再让电费偷偷溜走!用智能时间开关改造家里的热水器和空调(附保姆级选购指南)

别再让电费偷偷溜走&#xff01;用智能时间开关改造家里的热水器和空调&#xff08;附保姆级选购指南&#xff09; 每到月底收到电费账单时&#xff0c;那种"钱不知不觉就溜走"的感觉总是让人心疼。特别是热水器和空调这两大"电老虎"&#xff0c;它们往往…...

OpenAI Triton项目中的相关技术对比:多面体编译与调度语言

OpenAI Triton项目中的相关技术对比&#xff1a;多面体编译与调度语言 【免费下载链接】triton Development repository for the Triton language and compiler 项目地址: https://gitcode.com/GitHub_Trending/tri/triton 引言 在深度学习编译器领域&#xff0c;OpenA…...

告别SIFT/ORB!用LoFTR+Transformer搞定低纹理场景的图片匹配(附Python实战代码)

低纹理场景图像匹配实战&#xff1a;LoFTR与Transformer的革新应用 在计算机视觉领域&#xff0c;图像特征匹配一直是三维重建、视觉定位等任务的基础环节。传统方法如SIFT、ORB依赖于特征检测器提取关键点&#xff0c;但在低纹理、重复图案或运动模糊场景中表现往往不尽如人意…...

突破性解决方案:3步解决Calibre中文路径乱码,实现100%原生中文支持

突破性解决方案&#xff1a;3步解决Calibre中文路径乱码&#xff0c;实现100%原生中文支持 【免费下载链接】calibre-do-not-translate-my-path Switch my calibre library from ascii path to plain Unicode path. 将我的书库从拼音目录切换至非纯英文&#xff08;中文&#x…...

OpenClaw错误排查大全:百川2-13B接口调用常见问题与解决方案

OpenClaw错误排查大全&#xff1a;百川2-13B接口调用常见问题与解决方案 1. 为什么需要这份排查指南 上周我在本地部署百川2-13B模型对接OpenClaw时&#xff0c;连续遇到了三个晚上各种报错。从模型加载失败到Token耗尽&#xff0c;再到莫名其妙的响应超时&#xff0c;每次解…...

OpenClaw任务编排:GLM-4.7-Flash多步骤自动化设计

OpenClaw任务编排&#xff1a;GLM-4.7-Flash多步骤自动化设计 1. 为什么需要任务编排 上周我需要整理一批技术文档&#xff0c;这个任务包含多个步骤&#xff1a;从不同文件夹收集Markdown文件、统一格式、生成摘要、最后打包发送给团队成员。手动操作不仅耗时&#xff0c;还…...

Spring PetClinic实战解析:从单体应用到云原生部署的5大架构亮点

Spring PetClinic实战解析&#xff1a;从单体应用到云原生部署的5大架构亮点 【免费下载链接】spring-petclinic A sample Spring-based application 项目地址: https://gitcode.com/gh_mirrors/sp/spring-petclinic 你是否遇到过这样的困境&#xff1a;在学习Spring框架…...

资源监控告警:OpenClaw+Qwen3-32B镜像守护个人服务器

资源监控告警&#xff1a;OpenClawQwen3-32B镜像守护个人服务器 1. 为什么需要智能化的个人服务器监控&#xff1f; 去年我的个人服务器连续宕机三次——第一次因为内存泄漏导致OOM崩溃&#xff0c;第二次被挖矿程序占用全部CPU资源&#xff0c;第三次则是磁盘写满后无人察觉…...