面试题答案
一键面试常用加密算法及适用场景
- 对称加密算法 - AES(高级加密标准)
- 适用数据类型:适合对数据库连接字符串、用户认证密钥等数据进行加密。
- 原因:AES 加密速度快、效率高,在微服务架构中,对于需要频繁加密和解密的数据,如数据库连接字符串,每次服务启动或调用数据库时都可能需要解密,AES 能快速完成这些操作。同时,它的密钥管理相对简单,只要在配置中心和使用端安全地共享密钥,就能有效保障数据安全。例如,对于用户认证密钥,在认证服务和相关微服务之间共享密钥,快速加密和解密密钥,保证认证过程的高效性和安全性。
- 非对称加密算法 - RSA
- 适用数据类型:适合用于对对称加密算法中的密钥进行加密传输,或者对一些不频繁更改且需要高度安全保证的数据,如重要的系统配置参数加密。
- 原因:RSA 安全性高,其基于大整数分解难题,破解难度大。在配置中心场景中,当要传输对称加密算法的密钥时,用 RSA 加密该密钥,接收方用私钥解密获取对称密钥,可提高密钥传输的安全性。对于重要的系统配置参数,因其不常更改,RSA 加密和解密虽速度慢,但高安全性可保障其不被轻易破解。
- 哈希算法 - SHA - 256
- 适用数据类型:适用于对数据完整性要求高,如验证配置文件是否被篡改的场景。虽然哈希算法不可逆,不能用于解密还原数据,但可用于验证数据的一致性。例如,配置中心生成配置文件的 SHA - 256 哈希值并存储,微服务获取配置文件后重新计算哈希值与存储的哈希值对比,若一致则说明配置文件未被篡改。对于用户认证密钥,也可通过哈希运算存储其哈希值,在认证时对输入的密钥进行相同哈希运算并对比结果,以验证密钥正确性,且避免在存储中暴露密钥明文。