我正在开发一个平台,该平台将多个密钥用于多种用途:key1用于散列密码(使用 pbkdf2-hmac-sha256),key2用于生成不可重复的不可预测的 uuid(使用 aes-128 和计数器)等。
我没有存储不同的密钥,而是想从一个密钥生成它们,即:
key1 = HMAC(primary_key, "key1");
key2 = HMAC(primary_key, "key2");
...
这样做有什么严重的缺陷吗?这种编程模式很常见吗?单独生成密钥显然会带来一个小优势,即密钥之间没有数学依赖关系。但是,据我了解,即使攻击者找到key1他也无法找到primary_key或key2,对吗?
谢谢