【问题标题】:Decrypt encrypted value outside of Laravel with Php使用 Php 在 Laravel 之外解密加密值
【发布时间】:2018-01-10 09:11:04
【问题描述】:

但是我已经阅读了以下问题,不熟悉 Laravel,我仍然不清楚最有效的解决方案以及如何编码,并且当前版本的 Laravel 已经 4 年升级到 5.6:

decrypt-encrypted-value-outside-of-laravel

decrypting-outside-laraveldecrypting-outside-laravel-comment

我的 php 脚本独立于使用 Laravel 的 CMS,它可以通过 curl 或通过 cron 触发。 php 脚本从已被 Laravel 加密函数加密的数据库中获取密码。 php 脚本将获取密钥(我相信它是 base64 编码的)并需要解密密码。

如果我实例化 Encrypter 类,是否可以最小化依赖关系,如果脚本是从 cron 运行的,那么引用这个类会起作用吗?如果是这样,我需要什么代码才能正确设置?

替代方法可能是如何复制加密代码,但是如果 Encrypter 类代码发生更改,那么我将面临不兼容的风险。

【问题讨论】:

  • 你的问题太宽泛了。包括代码的相关部分并详细说明您遇到问题的特定问题。
  • laravel 是否以您可以解密的方式加密密码?这似乎很不安全!还是你自己做的?你到底想做什么,验证密码?
  • @Luke,以上都是我的问题,哪一部分需要进一步解释?到目前为止,我的代码与这里无关,我只是尝试使用与 Laravel Encrytion 类兼容的代码来解密我从数据库字段中获取的值。
  • @Kaddath 是的,带有密钥,请参阅laravel.com/docs/5.5/encryption
  • 这可能是一个 XY 问题,如果这些解释不威胁您的安全,您能否更准确地说明您要如何处理这些密码以及为什么存储它们?可能还有另一种你没有义务的策略。

标签: php encryption laravel-5


【解决方案1】:

你不能解密密码,但你可以verify it against a hash

实现您想要做的最佳方法是在 Laravel 中创建一个命令,这样您就可以通过 cron 执行您的命令,并使用 Hash::check 方法检查纯文本密码与哈希密码。

【讨论】:

  • 这是加密/解密,不是散列!请看laravel.com/docs/5.5/encryption
  • @NickW 重点是你不应该加密密码......你应该散列它们。
  • @Luke 我理解这一普遍共识,但在这种情况下,我需要检索我之前加密的密码。而不是“密码”,我们称之为“数据”。
  • 我可以避免在数据库中存储可检索密码的唯一方法是在服务设置(例如 CMS 服务)期间使用随机密码,然后允许用户登录到主系统并重置服务密码。将服务密码重置为他们输入的密码将直接更新服务配置文件,然后无需将加密密码存储在服务管理器数据库中。像 DashLane 这样的密码库存储加密的密码,但它们的加密级别无疑会高得多。
  • 但是我认为几乎可以肯定的是,在跨主机帐户目录编辑配置文件时会有所有权/权限限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 2011-09-30
  • 2017-08-30
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多