我已从Parse.com导出数据,但密码是使用bcrypt加密的。我将数据存储在MySQL数据库中,用户将通过一个简单的RESTful API连接。假设我捕获用户名和密码,如何检查这与存储的密码匹配?
答案 0 :(得分:3)
我将在这里说道,并说一旦用bcrypt加密密码就无法解密 - 由于种种原因,这将是一个巨大的安全漏洞。以下是一些暗示这种情况的链接:
https://www.parse.com/questions/encryption-decryption-techniques-provided-by-parse-for-passwords-or-urls 我们在内部使用bcrypt来存储密码。但是,我们不会在我们的API中公开密码的加密版本,因此无论如何您都无法对其进行解密。
https://stackoverflow.com/questions/35593429/get-parses-user-password-in-decrypted-format
简而言之,当您将其迁移到新服务时,您将不得不与用户沟通他们需要更改密码(或至少确认密码)。
我建议像这样的工作流程:
通知用户需要确认/重新验证其密码。由您决定是否由于数据迁移而告知您,但我通常会在披露和诚实方面表达出自己的意见。您可以基于每个用户执行此操作或发送批量通信。
当用户下次登录您的应用时,提示他们验证密码(或更改密码)。使用Parse SDK验证密码,如果验证成功,则使用您选择的加密解决方案重新加密现在已知的密码,然后将其存储在新的BaaS / dB中。
如果用户无法验证密码或忘记密码,请使用电子邮件或2FA验证流程重置密码并以相同方式存储。
答案 1 :(得分:0)
无法解密密码。
我强烈建议您使用parse.com数据库迁移工具将数据导出到外部MongoDB。您可以使用Parse Server来提供RESTful API。它可以通过托管您自己的自托管服务器或Parse Hosting解决方案轻松完成,例如https://www.back4app.com
请参阅以下链接中的所有选项: https://github.com/ParsePlatform/parse-server#parse-server-sample-application