数据安全之一 加解密介绍

news/2025/3/17 13:42:35/文章来源:https://www.cnblogs.com/sandyflower/p/18233344

一、场景

  信息系统不断发展,要求对于其中的数据安全性必须增加保护机制,否则数据泄露将会给企业带来不可估量的损失。基于此,数据的安全包括如下:

1)数据存储的安全

     存储包括:文件存储(包括含有敏感信息的图片)、数据库中的敏感数据的存储(比如:密码)、配置文件中的敏感数据的存储(比如:密码)

2)数据传输的安全

    这类数据包括:请求报文中的敏感信息(比如:密码)、文件、图片等。

为了保证数据存储的安全,通常这类数据会采用的安全措施为:

1)加密

2)压缩成zip格式使用密码

为了保证数据传输的安全,通常这类数据会采用的安全措施为:

1)加密

2)https 协议

3)MD5 计算数据的完整性

二、加解密的基本原理介绍

  加解密分为两种 对称加密 和 非对称加密。

1、对称加密

      称加密是一种加密方式,其中使用相同的密钥进行加密和解密。这意味着发送方和接收方在通信中共享相同的密钥。对称加密算法的主要优势是速度较快,适合大量数据的加密和解密操作。常见的对称加密算法包括AES(Advanced Encryption Standard)和DES(Data Encryption Standard)。

优势:

  • 速度快: 对称加密的速度通常较快,适合处理大量数据。
  • 简单: 算法相对简单,实现相对容易。

劣势:

  • 密钥管理: 密钥的安全分发和管理是一个挑战,特别是在分布式系统中。
  • 不适合公开环境: 发送方和接收方必须事先共享密钥,不适用于公开环境或大规模网络通信。

 

2、非对称加密

非对称加密使用一对密钥,公钥和私钥,进行加密和解密。公钥是公开的,用于加密数据,而私钥是保密的,用于解密数据。由于公钥和私钥是成对的,非对称加密也被称为公钥加密。常见的非对称加密算法包括RSA(Rivest-Shamir-Adleman)和ECC(Elliptic Curve Cryptography)。

 

 

优势:

  • 密钥管理简单: 不需要事先共享密钥,减少了密钥管理的复杂性。
  • 适用于公开环境: 公钥可以公开,适用于在不安全的网络上进行加密通信。

劣势:

  • 速度较慢: 相对于对称加密,非对称加密的速度较慢。
  • 不适合大量数据加密: 由于速度较慢,非对称加密通常用于小量数据的加密,而不是大规模数据。

结合使用: 

通常,对称加密和非对称加密结合使用,利用它们各自的优势,这被称为混合加密。在混合加密中,对称加密用于加密大量数据,而非对称加密用于安全地传输对称密钥。这样可以同时保证加密的速度和密钥的安全性。

三、常见的加密算法

常见的加密算法可以分为以下两大类:

1、对称加密算法

  • DES - 数据加密标准,密钥长度56位,目前已不安全
  • 3DES - 强化版的DES,增加密钥长度为168位
  • AES - 高级加密标准,密钥128/192/256位,是最常用的对称算法之一
  • Blowfish/Twofish - 64-448位可变密钥,速度快,强度高
  • RC4 - 流加密算法,密钥长度1-2048位,速度很快
  • RC5/RC6 - 块加密算法,可自定义密钥和轮数

2、非对称加密算法

  • RSA - 最常用的公钥加密算法,基于大整数因数分解难题
  • ECC - 椭圆曲线加密算法,基于椭圆曲线离散对数难题
  • Diffie-Hellman - 密钥交换协议,用于双方在公开渠道协商共享密钥
  • DSA/ElGamal - 数字签名算法,基于整数对数难题

3、其他常见加密算法

  • MD5、SHA1、SHA256等哈希算法
  • HMAC - 基于哈希算法的消息认证码算法
  • SSL/TLS - HTTPS网络传输层安全协议加密

每类算法有各自的特点,需要根据应用场景选择合适的加密算法。一般组合使用对称加密、非对称加密和哈希函数,可以实现高强度的加密。

 

 

 

 

参考:

HTTPS原理及配置-CSDN博客

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32系列--同一定时器双通道捕获

void TIM3_Cap_Init(u16 arr,u16 psc)//定时器3通道2输入捕获配置 {TIM_ICInitTypeDef TIM_ICInitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Pe…

赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。

通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身“预测下一个token”的文字功能去探索更多的应用落地可能性。不过一直没有真正操作过,直到前…

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常

Ollama,在centos7宿主机上,curl http://宿主机IP:11434 提示拒绝访问 ,但是curl http://localhost:11434 正常1.使用 netstat 或 ss 命令在宿主机上检查 11434 端口的状态[root@localhost ~]# netstat -tulnp | grep 11434 tcp 0 0 127.0.0.1:11434 0.…

NFS,smb和数据库文件

nfs的搭建网上有很多,可自行查看 Windows Server2012 R2搭建NFS服务器 - 知乎 (zhihu.com) 其中Windows10家庭版不支持NFS客户端,目前Windows上的协议是V3版本,防火墙上有NFS的选项,端口2049udp和tcp 在客户端上的访问和smb一样,都可映射网络驱动器,使用\\ip\目录方式访问…

JavaDoc生成文档

javaDoc命令是用来生成自己API文档的参数信息:@auchor:作者名 @version:版本号 @since:指明需要最早使用的jdk版本 @param:参数名 @return:返回值情况 @throws:异常抛出情况//主要生成的参数 如:/*** @author 林伟填* @version 1.0* @since 1.8*/public class doc {Str…

心诺安 x TapData:快速搭建云中数仓,助力电商企业实施“以用户为中心的”精细化运营

电商企业如何充分整合并利用自身数据资源,实现高效的数据管理和业务流程优化,迎接用户导向的电商精细化运营时代的挑战。使用 TapData,化繁为简,摆脱手动搭建、维护数据管道的诸多烦扰,轻量代替 OGG、DSG 等同步工具,「CDC + 流处理 + 数据集成」组合拳,加速仓内数据流转…

Docker安装使用教程

Docker安装使用教程Docker是什么Docker是一个容器化开源平台,它使开发者可以再容器中封装应用程序,以及其依赖的所有组件,包括操作系统、库文件、环境变量等,并以轻量级、可移植的方式进行交付和部署.Docker的三大核心概念是:镜像(Image):镜像是Docker的基本构建块,它是一…

未来5年,只有这种产品团队才能开启上帝视角【玩转IPD】

一家企业如何在波涛汹涌的市场浪潮中站稳脚跟?一个团队如何快速识别风险发现机遇,成为行业的标杆?一家企业如何在波涛汹涌的市场浪潮中站稳脚跟?一个团队如何快速识别风险发现机遇,成为行业的标杆?市场瞬息万变,如何准确地响应市场动向,紧跟用户需求?这些问题,已成为…

Linux 部署 MinIO(远程服务器)

1. 下载安装 进入 Linux 内# 我习惯放在local下 cd /usr/local/# 新建目录 mkdir minio # 进入目录 cd minio下载路径:# 下载地址 wget https://dl.min.io/server/minio/release/linux-amd64/minio授权:# 授权 chmod +x minio 2. 自定义配置 自定义账号与登录密码,直接在本…

STM32H743 ADC+DMA

1.** STM32CubeMX 配置如下:** ADC: 配置通道配置ADC的工作模式,这里用到了DMA使用ADC中断DMA2的通道4对应ADC2GPIO的配置,没有配置上下拉DMA配置:用STM32H743用DMA传输ADC的数据会有一个需要注意的点,需要将传输数据的buf配置在固定的某一段RAM中。 #define ADC_CONVERTE…

裁剪的3种方式,CSS 如何隐藏移动端的滚动条?

在移动端开发中,经常会碰到需要横向滚动的场景,例如这样的但很多时候是不需要展示这个滚动条的,也就是这样的效果,如下你可能想到直接设置滚动条样式就可以了,就像这样::-webkit-scrollbar {display: none; }目前来看好像没什么问题,但在某些版本的 iOS 上却无效(具体待…

golang使用OpenCC繁简转换

https://github.com/longbridgeapp/opencc main.go package mainimport ("fmt""log""github.com/longbridgeapp/opencc" )func main() {s2t, err := opencc.New("s2t")if err != nil {log.Fatal(err)}in := `我来测试一下简转繁`out, …