gpt4 book ai didi

encryption - 我该如何加密我网站上的用户内容,以使我什至无法访问该内容?

转载 作者:行者123 更新时间:2023-12-04 06:46:01 24 4
gpt4 key购买 nike

我需要按用户对Web应用程序中的内容进行加密。

我(root用户)不想访问用户的内容,期限。

如何做到这一点,使用户成为唯一有权访问其内容的用户?也许我可以这样做,使他们的登录密码的哈希充当加密和解密 key (然后,将他们的密码以单向哈希存储在我的数据库中,然后从他们登录时的原始密码生成加密/解密哈希并将其存储在一个本地Cookie)?但是,如果他们更改了密码怎么办?然后,我必须更新其所有内容,这可能需要大量处理能力。

是否有一种加密方法可以提供此功能,而无需更改其密码(如果密码更改)的内容?也许类似于Linux上的ecryptfs?研究ecryptfs是一个不错的起点吗?

这样做是否只有用户可以访问他们在我的服务器上(甚至不是我)上的内容甚至可行?

最佳答案

流程:

  • 生成随 secret 钥以加密其内容。
  • 使用其提供的密码来加密#1中的随机 secret 。
  • 将其密码存储为单向哈希(加盐,可能是多哈希)。

  • 更改密码后:
  • 从步骤2重新生成值。
  • 从步骤#3重新生成哈希缓存。

  • 登录后:
  • 哈希密码,并检查步骤3中生成的哈希。
  • 如果密码匹配-使用实际提供的密码来解密#2中的随机 secret 。
  • 使用#2中的随机 secret 来解锁#1中加密的数据。

  • 注意:
  • 在不知道随机 secret (#1)的情况下,没有人可以解码数据。只能使用用户的实际密码(#2)(蛮力不足)解锁随机 secret 。用户的实际密码仅以单向散列格式(#3)知道,因此您可以确认它是相同的,但是无法对其进行解码并恢复#2。
  • 无法执行忘记的密码过程(您可以重新生成#3,但现在#2中的随 secret 钥以及在其保险库中锁定的所有内容都将丢失)。
  • 您不必在每次更改密码时都重新加密步骤1中的所有内容,而只需要加密#2中的(简单/快速)随机 secret 即可。
  • 如果您缓存他们提供的密码,或者在步骤1中生成的随机 secret ,或者他们(解密的)内容在任何可能导致数据泄漏的位置进行缓存。
  • 关于encryption - 我该如何加密我网站上的用户内容,以使我什至无法访问该内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690339/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com