我正在使用网络服务。它向我发送了一个 json 字符串和一个秘密,以便我可以验证传入的数据。
我在 python 中使用烧瓶构建了一个端点,将传入的 json 保存到数据库中。 在处理传入数据之前,我会验证秘密。
现在我想将秘密保存在数据库中。通常,我会在将机密保存到数据库之前对其进行加密,并将其与用户 ID 一起保存。然后我会在获取加密密钥时查找用户 ID 并验证 ID。
我的问题是网络服务不发送用户 ID,只发送秘密。
所以我需要通过秘密在数据库中查找加密的秘密。在 mysql 请求中,我可能看起来像这样:
sql = "select encrypted_secret from table where 'True' = " + pbkdf2_sha256.verify(secret, encrypted_secret)
Obvios 这没有任何意义,因为在执行查询之前我无法引用加密的秘密。 作为替代方案,我可以查询我在数据库中拥有的所有秘密,看看传入的秘密是否是其中之一,但它并不是一个好的解决方案。
你会如何处理?
BR 克雷斯顿