从 Parse 导出密码
Posted
技术标签:
【中文标题】从 Parse 导出密码【英文标题】:exporting passwords from Parse 【发布时间】:2016-03-31 17:41:40 【问题描述】:我已经从 Parse.com 导出了我的数据,但密码是使用 bcrypt 加密的。我会将数据存储在 mysql 数据库中,用户将通过简单的 RESTful API 进行连接。假设我捕获了用户名和密码,我如何检查它是否与存储的密码匹配?
【问题讨论】:
【参考方案1】:我要在这里冒昧地说,一旦使用 bcrypt 加密密码,就无法解密密码 - 由于各种原因,这将是一个巨大的安全漏洞。以下是一些暗示这种情况的链接:
https://www.parse.com/questions/encryption-decryption-techniques-provided-by-parse-for-passwords-or-urls 我们在内部使用 bcrypt 来存储密码。但是,我们不会在 API 中公开密码的加密版本,因此无论如何您都无法解密它。
How to send Parse user's password to external API Request?
https://***.com/questions/35593429/get-parses-user-password-in-decrypted-format
简而言之,当您将用户迁移到新服务时,您必须告知用户他们需要更改密码(或至少确认密码)。
我建议这样的工作流程:
通知用户他们的密码需要确认/重新验证。是否通知他们这是由于数据迁移,这取决于您,但我通常倾向于披露和诚实。您可以针对每个用户执行此操作,也可以发送批量通信。
当用户下次登录您的应用时,提示他们验证密码(或更改密码)。使用 Parse SDK 验证密码,如果验证成功,则使用您选择的加密解决方案重新加密现在已知的密码,然后将其存储在您的新 BaaS/dB 中。
如果用户无法验证密码或忘记密码,请使用电子邮件或 2FA 验证流程重置密码并以相同方式存储。
【讨论】:
【参考方案2】:无法解密密码。
我强烈建议您使用 parse.com 数据库迁移工具将数据导出到外部 MongoDB。您可以使用 Parse Server 来提供 RESTful API。可以通过托管您自己的自托管服务器或 Parse 托管解决方案(如 https://www.back4app.com
)轻松完成查看以下链接中的所有选项: https://github.com/ParsePlatform/parse-server#parse-server-sample-application
【讨论】:
以上是关于从 Parse 导出密码的主要内容,如果未能解决你的问题,请参考以下文章
python DreamUnweaver:从Adobe Dreamweaver * .ste导出中提取和解密密码和FTP信息。