【问题标题】:Encrypting and decrypting data with a key generated through crypto/pbkdf2 in Golang在 Golang 中使用通过 crypto/pbkdf2 生成的密钥对数据进行加密和解密
【发布时间】:2022-01-08 09:24:45
【问题描述】:

我正在尝试为应用程序加密我的敏感数据。对于密钥生成部分,我使用 crypto/pbkdf2。我正在根据用户提供的密码即时生成加密密钥。创建用户时,就是我使用用户提供的密码加密用户的相应数据时。但是,每当该特定用户尝试访问资源时,我必须在将数据显示给用户之前对其进行解密。每次该用户调用端点以访问资源时,我从哪里获取密码?

注意:我将用户的哈希密码存储在数据库架构中,我也不想将加密密码存储在任何地方!

【问题讨论】:

    标签: go encryption


    【解决方案1】:

    对此的典型解决方案称为token-based authentication(或在 OAuth 术语中,资源所有者密码凭据流)。

    创建一个“登录”端点,该端点将从提供的用户名/密码派生加密密钥并将其交换为(有时间限制的)“访问令牌”,将其存储在支持 TTL 的键值存储中(例如 etcd , Redis)。

    然后每个后续请求都需要提供访问令牌(例如在授权标头中),然后用于从键值存储中检索加密密钥。

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 2012-04-07
      • 1970-01-01
      • 2020-06-16
      • 2017-07-06
      相关资源
      最近更新 更多