crypto加密-理论篇
前言
涉及到前后端数据传输的时候,针对敏感数据 我们不能直接明文传输!
这就需要给数据进行加密!
crypto是无论浏览器还是服务器几乎都内置的模块,专门用于对数据加密处理!
怎么用
无论是前端还是后端,都支持创建密钥、进行加密和解密这一套完成的流程。
但是一般情况下,都是前端加密数据,后端解密来用!
大部分情况在,如果后端用不到读取解密后数据,后端甚至连解密都不需要!
基础知识
在密码学中,加密有两种类型方案,对称和非对称!
前者解密和加密仅需要一个密钥即可,而后者则需要一对儿(私钥和公钥)!
这两种方式加密,都需要特定的加密算法做支撑,叫做 加密算法!
对称密钥(Symmetric Key)
- 定义:对称密钥加密使用同一个密钥进行加密和解密。加密和解密过程是对称的,即使用相同的密钥。
- 特点:
- 速度快:对称加密算法通常比非对称加密算法更快,适合处理大量数据。
- 密钥管理简单:只需要管理一个密钥。
- 安全性依赖于密钥的保密性:如果密钥泄露,数据将不再安全。
 
- 常见算法:
- AES(Advanced Encryption Standard):现代最常用的对称加密算法,支持多种密钥长度(如128位、192位、256位)。
- DES(Data Encryption Standard):较老的对称加密算法,现在较少使用,因为其密钥长度较短(56位),安全性较低。
- 3DES(Triple DES):通过三次应用DES算法提高安全性,但速度较慢。
- Blowfish:一种可变密钥长度的对称加密算法,速度较快,安全性高。
- Twofish:Blowfish的改进版本,支持更长的密钥长度,安全性更高。
 
对称加密的优点是算法公开、计算量小、加密速度快,但缺点是密钥管理复杂,安全性相对较低。在密码加密中,对称加密较少单独使用,但可以结合非对称加密一起使用
非对称密钥(Asymmetric Key)
- 定义:非对称密钥加密使用一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密数据。公钥可以公开分发,而私钥必须保密。
- 特点:
- 安全性高:即使公钥被公开,私钥仍然安全,数据无法被解密。
- 密钥管理复杂:需要管理一对密钥,公钥和私钥。
- 速度较慢:非对称加密算法通常比对称加密算法慢,适合处理小量数据。
- 支持数字签名:可以用于验证数据的完整性和来源。
 
- 常见算法:
- RSA(Rivest-Shamir-Adleman):最常用的非对称加密算法,广泛用于安全通信和数字签名。
- RSA-PSS:RSA的加强版,增加了签名的随机性,提高了安全性。
- DSA(Digital Signature Algorithm):专门用于数字签名的算法,不支持加密。
- ECDSA(Elliptic Curve Digital Signature Algorithm):基于椭圆曲线的数字签名算法,安全性高,密钥长度较短。
- ECC(Elliptic Curve Cryptography):基于椭圆曲线的加密算法,提供相同安全级别所需的密钥长度更短,计算效率更高。
 
密钥存储和管理
无论是对称密钥还是非对称密钥,密钥的存储和管理都是至关重要的。
一般我们会将密钥放到数据库或者服务器上!
如果公钥密钥都用同一个即对称密钥方案,那密钥文件绝不能请以外传。
反之如果采用的是非对称方案,则只需要私钥不外传即可,公钥随便!
总结:根据具体的应用场景和安全需求,选择合适的密钥类型和管理方式。
对称密钥:速度快,适合处理大量数据,但密钥管理简单,安全性依赖于密钥的保密性。
非对称密钥:安全性高,支持数字签名,但速度较慢,适合处理小量数据,密钥管理复杂。
关于hash 和 rsa
RSA算法主要用于加密和数字签名,通过公钥加密、私钥解密实现数据安全传输。
哈希函数则用于生成消息摘要,确保数据完整性和唯一性。在数字签名中,先对消息进行哈希处理,再用RSA私钥加密哈希值生成签名,接收方用公钥解密并验证哈希值,以确认消息未被篡改。
这是两个东西,不过在实际应用中,哈希和RSA通常结合使用,例如在数字签名中,哈希确保消息完整性(防止篡改内容),RSA用于签名验证(加密内容)。
Hash
在使用 Web Crypto API 生成密钥对时,用不到哈希算法。
这是因为密钥对的生成过程主要关注密钥的生成和格式化,而不是具体的加密或解密操作。
Rsa
在创建密钥对时,则需要指定指定加密算法类型。
既哈希算法通常在加密和解密过程中使用,而不是在密钥对生成时。
为啥不直接使用rsa 加密密码
RSA加密是一种非对称加密算法,它使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。虽然RSA可以用于加密密码,但在实际应用中,它通常不是直接用于加密密码的首选方法。以下是几个主要原因:
1. 性能问题
RSA加密和解密操作相对复杂,计算成本较高。如过你加密的内容短 还体现不出,否则如果很长(比如 1MB),那就肯定对称加密的 AES 更好!
2. 密钥长度限制
RSA加密的数据长度受到密钥长度的限制。例如,使用2048位RSA密钥时,最多只能加密245字节的数据。密码通常较短,但RSA加密的这种限制使得它不适合直接加密较长的文本或大量数据。
3. 安全性问题
直接使用RSA加密密码可能会引入一些安全风险。例如,如果攻击者能够获取公钥,那破解密文就轻而易举了。
代码演示
专门写一篇文章,点击此处!

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号