前言
电影《模仿游戏》讲述了计算机之父——艾伦·图灵在二战期间,帮助盟军破译德国军事密码—— Enigma 的故事,为盟军的胜利起了巨大的推动作用,拯救了 1000 多万人的生命。
加密
加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
加密最初源自战争用途,雅典间谍的腰带情报,是世界上最早的密码情报,具体运用方法是,通信双方首先约定密码解读规则,然后通信—方将腰带(或羊皮等其他东西)缠绕在约定长度和粗细的木棍上书写。收信—方接到后,如不把腰带缠绕在同样长度和粗细的木棍上,就只能看到一些毫无规则的字母。
从加密方式的维度来看,上述两种加密都属于对称加密
。加密技术起源于军事通讯领域,在现代被广泛应用于各类通讯技术中。
加密之所以安全的原因,并不在于加密解密算法的方法,而在于加密的密钥是绝对的隐藏。流行的 RSA 和 AES 加密算法都是完全公开的,一方得到已加密的数据,就算知道加密算法,如果没有加密的密钥,也不能破解出被加密保护的信息。
加密的方式分为两种:对称加密和非对称加密。
对称加密
对称加密,即使用相同的密钥来进行加密和解密。对称加密的优点是加密和解密速度快,适合大量加密的场景。
其缺点也非常明显,密钥不易维护,加密方和解密方需要约定并分配密钥,双方对密钥的保管和传输过程中一旦发生泄漏,安全性就会被打破。
常见的对称加密算法有以下几种:
-
DES
-
3DES
-
AES
非对称加密
非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
非对称加密的流程是,A 生成公钥和私钥,将公钥共享给 B,私钥自己保存。B 用公钥加密后将信息传输给 A ,A 使用私钥解密得到原始信息。
很明显可以看出,非对称加密在安全性上要更高,即使公钥和密文被截取,没有私钥也无法获取原始信息。
非对称加密算法的特点是算法强度复杂,使得加密解密的速度远远低于对称加密算法,因此不适用于数据量较大的情况。
使用公钥加密的文本只能使用私钥解密,同时,使用私钥加密的文本也可以使用公钥解密。
常见的非对称加密算法有以下几种:
-
RSA
-
DSA
-
ECDSA
HTTPS
在网络传输协议方面,越来越多的公司将服务从 HTTP 协议切换到 HTTPS 协议,来应对纷繁复杂的网络安全问题。
HTTPS (Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。
HTTP 协议是没有加密过程的,数据以明文方式传输,因此其安全性较低,使用抓包软件可以轻易的获取到隐私的数据,篡改数据的中间人攻击也难以防御。
HTTPS 在 HTTP 基础上增加了 TSL 或 SSL 层,使用了对称加密和非对称加密两种加密方式来保证数据传输的安全性。
HTTPS = HTTP + 加密 + 认证 + 数据完整性保护
以下是 HTTPS 协议客户端与服务端的交互流程:
客户端与服务端的通信流程如下:
-
1、客户端向服务端发送请求
-
2、服务端将证书传输给客户端,证书中包含公钥信息,私钥在服务端保存
-
3、客户端生成随机码,使用公钥加密
-
4、客户端将加密后的随机码传输给服务端
-
5、服务端通过私钥解密随机码
-
6、客户端与服务端通过随机码作为对称加密的密钥来进行加密传输
混合加密
认证
安全控件
。
最近整理一份资料《程序员学习手册》,覆盖了 Java技术、面试题精选、操作系统基础知识、计算机基础知识、Linux教程、计算机网络等等。 获取方式:点“ 在看,关注公众号 Java后端 并回复 777 领取,更多内容陆续奉上。 推 荐 阅 读 1. 2020 最烂密码 TOP 200 大曝光! 2. 连夜撸了一个简易聊天室 3. 阿里二面:如何设计与实现短URL服务? 4. Markdown 必备组合神器! 5. 推荐一款 Java 对象映射神器
喜欢文章,点个 在看
本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。