• 加解 & 解密


    加密/解密

    问题思考
    1. 为什么需要加密 / 解密?

    2. 信息泄露可能造成什么影响?

    • 案例一:战争情报

    65b65006503e3198f4e8fd6ba0c19390.png
    • 案例二:破译北斗部分编码?乌龙

    7f5e62bfeb55d1c4498ef14454d7b9aa.png
    加密技术

    加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

    加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。

    • 算法:加密 / 解密所使用的转换规则

    • 密钥:加密 / 解密所使用的指令或代码

    0df3d50b0a6f25093f639caffb6bcf83.png

    加密的目的与方式

    加密的目的

    加密的目的就是为了保护数据在存储状态下和在传输过程中,不被窃取、解读和利用。简单的说:确保数据的机密性和保护信息的完整性

    加密的方式:单向散列加密

    根据输入长度信息进行散列计算,得到固定长度输出,常用于密码保存,常见的是MD5,SHA等,通常会加盐处理

    803e823f6794d6f890d0224ccaa216ef.png
    • 密钥数量

    • 特点

    (1)加密效率高

    (2)单方向加密

    • 安全性

    (1)不安全(相对于对称加密)

    • 使用情况

    (1)主流的加密方式

    加密的方式:对称加密

    采用单钥密码系统加密方法,同一个密钥可以同时用作信息的加密和解密。常见有AES

    74ba7ec43acc99e526baa9f53bdedb73.png
    • 密钥数量:1个

    • 特点

    (1)加密效率高

    (2)双方使用的密钥相同

    • 安全性

    (1)不安全(相对于非对称加密)

    • 使用情况

    (1)主流的加密方式

    加密的方式:非对称加密

    加密和解密使用的是不同的秘钥,其中一个对外公开,称为公钥,另一个被称为私钥。若使用公钥对数据进行加密,则只有使用对应的私钥才能解密,反之亦然。常见的有RSA

    ccc23bc4e4e883898e2a20170711b00e.png
    • 密钥数量:2个

    (1)公钥:任何人都可以持有,一般用于加密作用

    (2)私钥:只有自己持有,一般用于数字签名,签名的数据,可以证明是私钥持有人发送的数据,私钥签名的数据,私钥持有人无法否认自己发送这个消息。

    • 特点

    (1)公钥加密的只有对应的私钥能解开

    (2)加密解密效率很低,一般不做大量数据加解密使用

    • 安全性

    (1)高

    • 使用情况

    (1)一般配合对称机密使用,建立之初先使用非对称加密,协商好对称加密的算法和密钥,然后使用对称加密,进行后续加解密。

    常见的加密算法应用

    常见的加密算法应用:单向散列加密 md5
    • md 摘要算法包括多种算法,分别是md2、md4、md5

    • 现在一般都是使用 md5 进行加密

    jdk 内置的方法实现实现 md5

    7f1e3f711c7c829d2d1e35b700edde7d.png

    bc 方式实现 md5这种方式需要引入 bc 的 jar 包,bc 是 bouncycastle 的缩写。下载地址:

    https://www.bouncycastle.org/latest_releases.html
    d619d09341fdb45cc4a3c5e6babe2b7c.png

    cc 方式实现 md5

    cc是commons.codec的简写,需要引入 apache-commons-codec-x.x.xjar 包。 该实现方式,其实是对 jdk 实现 md5 加密进行了封装和简化操作,cc 方式实现md5 加密很方便。

    85d280547e321ce460c91a8ecdbe06c0.png
    常见的加密算法应用:单向散列加密 sha
    • sha 类加密算法有多种,共两大类。

    一类是 sha1;另一类包含多种加密算法:sha224、sha256、sha384、sha512。这些统称为sha2

    • 其中 sha1 加密后的长度是 160 byte,sha2 加密之后的密文长度和shaXxx 的数字相同,比如 sha256 加密之后,密文长度为 256 byte

    jdk 内置方法实现 sha1

    1eedd998dcdf505571a06a2263d2f628.png

    bc 方式实现 sha1

    e810c274c239ebab4ae501ec50301a2f.png

    cc 方式实现 sha1

    cc 方式实现 sha1 加密,非常简单。

    1e525345102dd188acd9ca5088a0b4fb.png

    记得点「」和「在看」↓

    爱你们

  • 相关阅读:
    【LeetCode: 901. 股票价格跨度 | 单调栈】
    JVM垃圾回收——CMS垃圾收集器
    docker基础篇——万字解读小鲸鱼
    网络安全(黑客)—0基础学习手册
    C# 子类如何访问子类的方法(同一父类)
    Reactive UI -- 反应式编程UI框架入门学习(一)
    2023年【制冷与空调设备运行操作】考试资料及制冷与空调设备运行操作考试试卷
    WPF绘图(路径)
    面试题整理:vue 的双向数据绑定的实现原理?
    Android笔记: 设置PopupMenu宽度
  • 原文地址:https://blog.csdn.net/huangjinjin520/article/details/127330155