diff --git a/README.md b/README.md index 55c95676..a9a7485f 100755 --- a/README.md +++ b/README.md @@ -308,6 +308,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8 ](https://docs.oracle - [JWT 优缺点分析以及常见问题解决方案](./docs/system-design/security/advantages-and-disadvantages-of-jwt.md) - [SSO 单点登录详解](./docs/system-design/security/sso-intro.md) - [权限系统设计详解](./docs/system-design/security/design-of-authority-system.md) +- [常见加密算法总结](./docs/system-design/security/encryption-algorithms.md) #### 数据脱敏 diff --git a/docs/.vuepress/sidebar/index.ts b/docs/.vuepress/sidebar/index.ts index b0ca14da..beca32e8 100644 --- a/docs/.vuepress/sidebar/index.ts +++ b/docs/.vuepress/sidebar/index.ts @@ -433,6 +433,7 @@ export default sidebar({ "advantages-and-disadvantages-of-jwt", "sso-intro", "design-of-authority-system", + "encryption-algorithms", "sentive-words-filter", "data-desensitization", ], diff --git a/docs/home.md b/docs/home.md index 4d79f5d5..bd93e857 100644 --- a/docs/home.md +++ b/docs/home.md @@ -302,6 +302,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle. - [JWT 优缺点分析以及常见问题解决方案](./system-design/security/advantages-and-disadvantages-of-jwt.md) - [SSO 单点登录详解](./system-design/security/sso-intro.md) - [权限系统设计详解](./system-design/security/design-of-authority-system.md) +- [常见加密算法总结](./system-design/security/encryption-algorithms.md) #### 数据脱敏 diff --git a/docs/system-design/security/encryption-algorithms.md b/docs/system-design/security/encryption-algorithms.md index b5464c7b..ce3564b8 100644 --- a/docs/system-design/security/encryption-algorithms.md +++ b/docs/system-design/security/encryption-algorithms.md @@ -1,4 +1,11 @@ -加密算法是一种用数学方法对数据进行变换的技术,目的是保护数据的安全性和完整性,防止被未经授权的人读取或修改。加密算法可以分为三大类:对称加密算法、非对称加密算法和哈希算法(也叫摘要算法)。 +--- +title: 常见加密算法总结 +category: 系统设计 +tag: + - 安全 +--- + +加密算法是一种用数学方法对数据进行变换的技术,目的是保护数据的安全,防止被未经授权的人读取或修改。加密算法可以分为三大类:对称加密算法、非对称加密算法和哈希算法(也叫摘要算法)。 日常开发中常见的需要用到的加密算法的场景: @@ -165,7 +172,7 @@ AES(Advanced Encryption Standard)算法是一种更先进的对称密钥加 AES 也是一种分组(或者叫块)密码,分组长度只能是 128 位,也就是说,每个分组为 16 个字节。AES 加密算法有多种工作模式(mode of operation),如:ECB、CBC、OFB、CFB、CTR、XTS、OCB、GCM(目前使用最广泛的模式)。不同的模式参数和加密流程不同,但是核心仍然是 AES 算法。 -和 DES 类似,对于不是 128 位倍数的明文需要进行填充,常用的填充模式有 PKCS5Padding, PKCS7Padding, NOPADDING。不过,AES-GCM 是流加密算法,所以对应的填充模式为 NoPadding,即无需填充。 +和 DES 类似,对于不是 128 位倍数的明文需要进行填充,常用的填充模式有 PKCS5Padding, PKCS7Padding, NOPADDING。不过,AES-GCM 是流加密算法,可以对任意长度的明文进行加密,所以对应的填充模式为 NoPadding,即无需填充。 AES 的速度比 3DES 快,而且更安全。 @@ -338,9 +345,14 @@ DSA 算法签名过程: ## 总结 -这篇文章介绍了三种加密算法:哈希算法、对称加密算法和非对称加密算法。哈希算法是一种用数学方法对数据生成一个固定长度的唯一标识的技术,可以用来验证数据的完整性和一致性,常见的哈希算法有 MD、SHA、MAC 等。对称加密算法是一种加密和解密使用同一个密钥的算法,可以用来保护数据的安全性和保密性,常见的对称加密算法有 DES、3DES、AES 等。非对称加密算法是一种加密和解密使用不同的密钥的算法,可以用来实现数据的安全传输和身份认证,常见的非对称加密算法有 RSA、DSA、ECC 等。 +这篇文章介绍了三种加密算法:哈希算法、对称加密算法和非对称加密算法。 + +- 哈希算法是一种用数学方法对数据生成一个固定长度的唯一标识的技术,可以用来验证数据的完整性和一致性,常见的哈希算法有 MD、SHA、MAC 等。 +- 对称加密算法是一种加密和解密使用同一个密钥的算法,可以用来保护数据的安全性和保密性,常见的对称加密算法有 DES、3DES、AES 等。 +- 非对称加密算法是一种加密和解密使用不同的密钥的算法,可以用来实现数据的安全传输和身份认证,常见的非对称加密算法有 RSA、DSA、ECC 等。 ## 参考 - 奇妙的安全旅行之 DSA 算法: - AES-GCM 加密简介: +- Java AES 256 GCM Encryption and Decryption Example | JCE Unlimited Strength: