我正在开发一个项目,其中两方可以各自向对方发出 API 请求,并使用共享密钥进行身份验证。对方希望共享的秘密在两种方式都相同,但我不明白这将如何工作。所以我要么在寻找如何安全地做到这一点的解释,要么找出这是否不可能,并且共享的秘密应该根据请求的方向而有所不同。
如果 API 请求只是在一个方向进行,我会使用密钥定义的函数对密码进行加盐,并存储散列和加盐,然后我可以通过在每个请求上生成和匹配散列来验证用户。但是,如果我需要使用相同的共享密钥向其他 API 发出请求,那么似乎我需要以可以解密的方式存储密码,这似乎是错误的/不可能的。
有没有办法做到这一点,或者共享秘密是否应该根据请求的方向而有所不同?