我目前正致力于调用第三方API的桌面应用程序。在授权他们的“Web服务”之后,返回一种用户令牌,该令牌应该存储在本地(即使用户关闭应用程序)。
所以我正在寻找使用用户特定密钥加密此令牌的解决方案。 Windows(和.NET)是否提供了一些标准的方法来执行此操作?我想要的只是保护来自同一台计算机的其他用户的令牌。
P.S。我无法存储哈希值,因为我需要在启动时解密此令牌。
答案 0 :(得分:6)
呀。 Windows确实提供了它。查看DPAPI,.NET Framework的System.Security.Cryptography.ProtectedData
类(自v2.0开始提供)可以访问该类以安全地存储敏感信息。
答案 1 :(得分:2)
是的,.NET中有许多用于加密的内置函数,这完全取决于您希望如何完成它。
这是一个good beginning article,它向您展示了在.NET中进行加密的一些基本元素,类和方法
注意:所有需要的类都在System.Security.Cryptography命名空间
中答案 2 :(得分:0)
在运行时,您可以将身份验证密钥存储在SecureString ...中以将其存储在会话之间,您可以使用.NET框架中的symmetric encryption API之一。