我正在研究如何使用Windows的数据保护API (DPAPI)加密一些数据。我的一个要求是在加密值时使用动态盐分。
通过测试,我注意到,如果我多次加密相同的字符串,就会得到不同的结果。它使用相同的字符串、空熵值和相同的作用域。
这让我觉得好像已经有了一种动态的盐。我没有看到任何文件表明这一点。
DPAPI已经处理动态盐渍了吗?如果不是,是什么导致加密的值每次更改?
发布于 2019-02-15 17:54:16
然而,MasterKey并没有显式地用于保护数据。相反,如果应用程序选择提供对称会话密钥,则根据MasterKey、(一些随机数据)和任何附加熵生成对称会话密钥。用于保护数据的正是这个会话密钥。 ..。 会话密钥从未存储过。相反,DPAPI存储它用来在不透明数据块中生成密钥的随机数据。当数据BLOB被传回DPAPI时,随机数据被用来重新派生密钥并解除数据保护。
https://msdn.microsoft.com/en-us/library/ms995355.aspx
加密数据中包含的这个随机数据充当一个盐。
optionalEntropy参数的目的是允许单个应用程序保护自己不受在同一个用户帐户下运行的其他应用程序的影响,并且不需要增加已经执行的盐渍的有效性。
https://stackoverflow.com/questions/54714462
复制相似问题