簡體   English   中英

用PHP創建TYPO3鹽漬密碼?

[英]Using PHP to create TYPO3 salted password?

我正在嘗試在未安裝TYPO3的外部網站上為TYPO3創建自定義注冊組件(我只使用其數據庫)。 問題是我沒有使用TYPO3的經驗。 我想知道是否有人知道如何為TYPO3創建正確的密碼加密? 密碼如下所示:

$ P $ CEO / XYcbzRH9nLpCwKdp1HhsJGwJum0

我正在尋找一個PHP代碼來創建相同的加密並檢查密碼。 我有安裝工具的加密密鑰(我相信)用於鹽析。

或者是否有可能只將密碼保存為MD5? 不是最好的選擇,但我可能是唯一剩下的選擇。

我找到了這個網址: http//srv123.typo3.org/TYPO3/Extensions/saltedpasswords/4.6/#compatibility-of-other-extensions-with-salted-user-password-hashes

但我不知道如何在我自己的腳本中實現它。

適用於typo3 6.X:

    $password = 'XXX'; // plain-text password
    $saltedPassword = '';

    if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('saltedpasswords')) {
        if (\TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
            $objSalt = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL);
            if (is_object($objSalt)) {
                $saltedPassword = $objSalt->getHashedPassword($password);
            }
        }
    }

看一下開發者指南:

1.5.1從給定的純文本密碼創建新的salted用戶密碼哈希

你必須在typo3-Frontend中使用它:

$password = 'XXX'; // plain-text password
$saltedPassword = '';

if (t3lib_extMgm::isLoaded('saltedpasswords')) {
  if (tx_saltedpasswords_div::isUsageEnabled('FE')) {
    $objSalt = tx_saltedpasswords_salts_factory::getSaltingInstance(NULL);
    if (is_object($objSalt)) {
      $saltedPassword = $objSalt->getHashedPassword($password);
    }
  }
}

但是 ,你永遠不應該嘗試在typo3之外生成鹽漬密碼,因為加密取決於你的typo3設置。

通過查看提供的哈希,我認為TYPO3中的saltedpasswords擴展(負責在數據庫中存儲鹽漬哈希)設置為使用phpass 因此,您應該能夠使用此類並在腳本中使用它來創建/檢查密碼,方法與TYPO3相同。

或者是否有可能只將密碼保存為MD5?

是的,在TYPO3中使用鹽漬密碼是可選的,不是強制性的。 但是,如果將來任何TYPO3安裝應該使用該數據庫,我不確定TYPO3如何處理記錄的混合,當其中一些將密碼存儲為無鹽灰燼和一些鹽腌。 我的猜測是,它會優雅地處理它,識別每個哈希使用哪個檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM