安全之加密算法

安全之加密算法

一、加密概述

1.为什么需要加密?

  • 前端存储需避免直接明文保存敏感信息,如用户个人信息、权限标识及身份令牌等,以确保数据在客户端的安全性。

  • 线上环境的数据传输存在潜在风险,网络通信可能被拦截或窃取,导致用户敏感信息泄露。需通过加密技术保障传输数据的机密性,防止恶意攻击者获取平台用户数据。

  • 许多行业法规(如GDPR、HIPAA)要求对特定数据进行加密。未加密可能导致法律处罚或声誉损失。

  • 核心目标为在数据存储与传输环节确保机密性、完整性和可用性,防范敏感信息被非法访问、篡改或滥用,同时符合监管合规要求并建立用户对系统的信任基础。

2.加密算法的常用术语

  • 明文/密文
    • 明文:加密之前的内容,原始内容
    • 密文:加密之后的内容
  • 暗文:看不见 - 输入密码
  • 公钥/私钥
    • 公钥:可见的公共的钥匙
    • 私钥:不可见的私有的钥匙
  • 可逆/不可逆
    • 可逆:加密之后可解密
    • 不可逆:加密之后不可解密
  • 对称/非对称
    • 对称:使用同一个密钥进行数据的加密解密
    • 非对称:加密与解密使用不同的密钥,公钥与私钥
  • 数字签名:加密方第二次加密叫做数字签名
  • 签名认证:解密方第一次解密叫做签名认证
  • 盐值(Salt): 随机数据,与密码结合后再哈希,防止彩虹表攻击。常用于密码存储。

3.秘密等级

秘密等级通常用于政府、军事或企业文件,根据信息的敏感性和潜在危害程度划分。

  • 绝密(Top Secret):最高级别,泄露可能导致国家安全或利益遭受特别严重损害。
  • 机密(Secret):次高级别,泄露可能导致严重损害。
  • 秘密(Confidential):基础级别,泄露可能导致一般性损害。
  • 内部(Restricted):非公开信息,但未达到秘密级别。

不同国家的秘密等级差异

  • 美国:采用三级分类(Top Secret/Secret/Confidential),并附加"SCI"(敏感隔离信息)等子类。
  • 中国:依据《保守国家秘密法》分为绝密、机密、秘密三级,明确标注保密期限和解密条件。
  • 欧盟:部分国家使用"EU Confidential"等统一标准,但成员国可能保留本国分级制度。

接下来计算常用的加密算法

二、加密算法

1.消息认证码算法

特征 :用于验证消息的完整性和真实性,防止数据被篡改
实现 :HMAC-SHA256、OMAC、UMAC、CBC-MAC、PMAC、VMACMessage Authentication Code
作用:用于验证消息的完整性和真实性,防止数据被篡改

2.不可逆加密算法

不可逆加密算法通常指哈希算法,但二者并非完全等同。哈希算法是单向函数,设计初衷是确保数据无法逆向还原,常用于数据完整性验证和密码存储。传统加密算法(如AES、RSA)通常是可逆的,需要密钥解密。

特征 :只能加密不能解密
技术 :MD5、SHA-256、SHA-3
作用 :一般对登录密码处理,用于做密码比对
问题:只能加密,不能解密,不能用来对网络中传输的数据进行加密

哈希函数,也叫散列函数,把任意长度的数据,变成固定长度的"指纹"。

常见的哈希算法

  • SHA-256、SHA-3:区块链、数据完整性校验,用得最多。
  • MD5、SHA-1:老掉牙了,安全性不行,别用了!除非你真的没办法。
    MD5一些网站可以几秒钟的破解,尽量给个盐

应用

  • 数据完整性校验:下载文件后,算个哈希值,和官方提供的比对一下,
  • 就知道有没有被动过手脚。
  • 密码存储:别直接存明文密码!哈希一下,再加个盐,安全多了。
  • 数字签名:先对数据哈希,再对哈希值签名,提高效率。

3.可逆对称加密算法

特征

  1. 可以加密,也可以解密
  2. 加密和解密的密钥是同一个,网络可以拦截到密钥

实现 :DES,AES
作用 :对数据库密码进行加密
缺点:速度快,适合大量数据加密,但密钥分发是个问题。

算法

  • 密文为s,加解密算法为AES,秘钥为k,明文为c
  • 加密:s = AES(k,c)
  • 解密:c = AES(k,s)

应用

  • 数据传输安全:SSL/TLS协议在握手阶段使用对称加
  • 文件与磁盘加密: BitLocker、FileVault等工具使用AES算法加密整个磁盘或分区。
  • 数据库管理系统(如MySQL、PostgreSQL)支持透明数据加密(TDE)

问题

  1. 根据密钥和数据可以解密数据,那么数据不安全
  2. 网络可以拦截到密钥后根据密钥加密其他数据,伪造数据发送给接收方,数据不安全

4.可逆非对称加密算法

特征

  1. 可以加密,也可以解密
  2. 加密和解密的密钥不是同一个。但是是成对出现的。一个私钥就对应一个公钥。如果使用私钥加密,

只能使用与之对应公钥来解密。反之如果使用公钥加密,只能使用与之对应私钥解密

实现 :RSA,RSA2支付宝签名采用RSA2算法
作用 :网络传输中对数据进行加解密
问题

  • 速度比对称加密慢。
  • 密钥长度有讲究,太短不安全,太长影响性能。

应用

  • 数字签名与身份验证:私钥签名、公钥验签确保数据完整性和来源真实性,广泛应用于SSL/TLS证书、文档签名等场景。
  • 安全协议集成: SSL/TLS:非对称加密用于握手阶段交换密钥,如RSA或ECDHE。
  • ECDH(椭圆曲线Diffie-Hellman)等算法通过非对称机制安全协商共享密钥,避免密钥直接传输。

算法

  • 密文为s,加解密算法为RSA私钥为k1,公钥为k2,明文为c
    第一组:私钥加密公钥解密
    加密:s = rsa(k1,c)
    解密:c = rsa(k2,s)
    第二组:公钥加密私钥解密
    加密:s = rsa(k2,c)
    解密:c = rsa(k1,s)

注意

  1. RSA可以只加密一次,但是加密一次不安全,因为可以被伪造
  2. 真正的RSA要加密两次,解密两次,第一次加密和解密并不是真正的数据,而是数字签名和签名认证/确认身份

加密一次
加密二次 :都是先通过自己的公钥加解密,然后再通过对象的私钥加解密

小结:

本文粗浅介绍了各大加密算法几大类型,不可逆加密(如SHA-256)适用于密码存储和完整性校验,需结合盐值提升安全性;对称加密(如AES)效率高但需解决密钥分发问题;非对称加密(如RSA)通过公私钥机制实现安全通信,但性能较低。实际应用中常采用混合策略,例如TLS协议结合非对称加密交换密钥,再切换至对称加密传输数据。

关键点

  • 哈希算法:单向性设计确保密码存储安全,需避免使用MD5等弱算法。
  • 对称加密:适合处理大量数据,但密钥管理需通过安全信道或密钥派生技术。
  • 非对称加密:解决密钥交换问题,支持数字签名和身份认证。
  • 合规性:根据不同场景选择符合行业标准(如FIPS 140-2)的算法实现。

文章结束,写作不易,喜欢就给个一键三连吧,你的肯定是我最大的动力,点赞上一千我就是脑瘫也出下章。

相关推荐
王维同学10 小时前
IFEO Debugger、VerifierDlls 与 SilentProcessExit 配置
c++·windows·安全·注册表
析数塔12 小时前
SleeperGem 技术拆解:恶意 gem 是怎么躲过 CI/CD 扫描的
安全·ci/cd·github
酉鬼女又兒12 小时前
[特殊字符]零基础入门AI:归纳演绎、假设空间、归纳偏好、NFL、过拟合与欠拟合、模型评估选择、超参数、性能度量、混淆矩阵、P-R曲线和F1
人工智能·windows·python·深度学习·安全·机器学习·矩阵
●VON14 小时前
鸿蒙 PC Markdown 编辑器 Alpha 评审:如何用退出条件判断阶段完成
网络·安全·华为·编辑器·harmonyos·鸿蒙
zzq779715 小时前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
绘梨衣的sakura路1 天前
Fastjson ≤ 1.2.83 新型 RCE 漏洞深度分析:三层绕过机制与完整利用链
安全·web安全·json
北龙云海1 天前
案例分享 | 面向公网业务系统境内访问白名单配置实操方案
运维·网络·安全·网络安全·告警·数据泄露·入侵攻击
niaiheni1 天前
Fastjson 1.2.83 “Gadget-Free“ RCE
网络·安全·web安全
意疏1 天前
远程办公软件哪个安全性高?UU远程8项安全防线全覆盖
网络·安全
Draina1 天前
CBC填充预言攻击-CBC Padding Oracle Crypto Attack
python·安全·web安全·网络安全·密码学·安全性测试