我之前在网上看到过一个非常形象的例子来说明Key和Secret的区别:
Key
Key是一种“加密密钥”,用于加密信息,而无需将私钥泄露给消费者。它就像一个黑盒,使用 RSA或者EC算法进行加密。
我们以RSA算法为例:
RSA 算法涉及到一个公钥和私钥。每个人都可以知道公钥,它用于加密消息。使用公钥加密的邮件只能用私钥解密。
例如:
假设你需要存储客户信用卡卡号,保存它在数据库中的安全方法是加密存储。在软件设计和业务需求时,很明显你应该加密它。数据如果没有加密,那么攻击者就可以直接获取卡号,这样的话信息就不再安全了。
如果使用Key Vault中的Key,您可以将 信用卡卡号信息发送到 Key Vault,它将对信息进行加密,并将加密后的值返回给调用者。
在高性能场景中,您可以从 Key Vault 获得公钥,使用它对来自应用程序端的信息进行加密,并将已经加密的卡号信息存储在数据库中,而不需要将数据发送到Key Vault。
获取真实数据的唯一方法是将加密数据发送到 Key Vault,在那里它将返回解密后的信用卡卡号。
Secret
Secret提供一般秘密的安全存储,如令牌,密码和连接字符串等。
Secret是以8位字节的形式存储和管理秘密,最大的大小为25kb。
保存到Secret中的数据将被加密存储,如果您有权限可以随时检索数据。
Note:
Key和Secret都可以设置加密数据的被激活日期和过期日期。
参考链接:
About keys - Azure Key Vault | Microsoft Docshttps://docs.microsoft.com/en-us/azure/key-vault/keys/about-keysAbout Azure Key Vault secrets - Azure Key Vault | Microsoft Docs
https://docs.microsoft.com/en-us/azure/key-vault/secrets/about-secrets