前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >加解 & 解密

加解 & 解密

作者头像
BUG弄潮儿
发布2022-12-05 21:04:36
1.2K0
发布2022-12-05 21:04:36
举报
文章被收录于专栏:JAVA乐园JAVA乐园

加密/解密

问题思考
  1. 为什么需要加密 / 解密?
  2. 信息泄露可能造成什么影响?
  • 案例一:战争情报
  • 案例二:破译北斗部分编码?乌龙
加密技术

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

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

  • 算法:加密 / 解密所使用的转换规则
  • 密钥:加密 / 解密所使用的指令或代码

加密的目的与方式

加密的目的

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

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

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

  • 密钥数量 无
  • 特点

(1)加密效率高

(2)单方向加密

  • 安全性

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

  • 使用情况

(1)主流的加密方式

加密的方式:对称加密

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

  • 密钥数量:1个
  • 特点

(1)加密效率高

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

  • 安全性

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

  • 使用情况

(1)主流的加密方式

加密的方式:非对称加密

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

  • 密钥数量:2个

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

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

  • 特点

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

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

  • 安全性

(1)高

  • 使用情况

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

常见的加密算法应用

常见的加密算法应用:单向散列加密 md5
  • md 摘要算法包括多种算法,分别是md2、md4、md5
  • 现在一般都是使用 md5 进行加密

jdk 内置的方法实现实现 md5

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

代码语言:javascript
复制
https://www.bouncycastle.org/latest_releases.html

cc 方式实现 md5

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

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

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

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

jdk 内置方法实现 sha1

bc 方式实现 sha1

cc 方式实现 sha1

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BUG弄潮儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加密/解密
    • 问题思考
      • 加密技术
      • 加密的目的与方式
        • 加密的方式:单向散列加密
          • 加密的方式:对称加密
        • 加密的方式:非对称加密
        • 常见的加密算法应用
          • 常见的加密算法应用:单向散列加密 md5
            • 常见的加密算法应用:单向散列加密 sha
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档