一、加密算法

一、对称加密

加密和解密使用同一个密钥。常见的对称加密算法有 DES、IDEA、AES、国密 SM1 和 SM4。
目前AES是国际上最认可的密码学算法。在算力没有突破性进展的前提下,AES 在可预期的未来都是安全的。

在加密通信中(如 HTTPS、VPN、SSH 等),通信双方会协商一个加密算法和密钥,对传输的数据进行加密,防止第三方窃取。
在数据库存储加密技术中,通信双方将存储空间中的数据进行加密,这样即使硬盘被物理窃取,也不会导致信息丢失。
为了避免用户的 Cookie 和隐私信息发生泄漏,在公司内部也需要对它们进行加密存储。

二、非对称加密

非对称加密代表加密和解密使用不同的密钥。所有的非对称加密算法,都是基于各种数学难题来设计的,这些数学难题的特点是: 正向计算很容易,反向推倒则无解。
经典非对称加密算法包括:RSA、ECC和国密SM2。 ECC 是目前国际上加密强度最高的非对称加密算法。

解决密钥分发的难题:在非对称加密算法中,公钥是公开信息,不需要保密,我们可以简单地将一个公钥分发给全部的通信方。
提供签名的功能:使用私钥加密,公钥解密。一旦接收方通过公钥成功解密,我们就能够证明发送方拥有对应的私钥, 也就能证实发送方的身份。也就是说,因为私钥只有我拥有,所以只有我能够发出这段话来,私钥加密就是我的签名。
大部分的认证和签名场景,使用的都是非对称加密算法,如SSH登录、git上传,都可以将公钥传到服务端,客户端保存私钥。

混合加密 :对称+非对称

三、散列算法/摘要算法

1、对任意长度的输入,计算出一个定长的id。 2、不可逆性:在不需要可逆计算的时候,使用散列算法

MD5:唯一性已经被破解,如果不是长度(32位)限制,不推荐使用 SHA:目前,SHA-256 普遍被认为是相对安全的散列算法,也是推荐使用的散列算法。 SM3:国密算法SM3,加密强度与SHA-256相当

在使用散列算法的时候,一定要加“盐”,增加破解负担,盐可以随机生成。 也可以取用户的一些信息通过算法生成,生成算法固化在代码中,不会随数据库沦陷而泄露。

你可能感兴趣的:(安全)