2012-07-25 41 views
5

Tôi đang cố gắng tạo thành phần đăng ký tùy chỉnh cho TYPO3 trên một trang web bên ngoài nơi TYPO3 chưa được cài đặt (tôi chỉ sử dụng cơ sở dữ liệu của nó). Vấn đề là tôi không có kinh nghiệm sử dụng TYPO3. Tôi đã tự hỏi nếu có ai biết làm thế nào để tạo mã hóa mật khẩu chính xác cho TYPO3? Các mật khẩu trông như thế này:Sử dụng PHP để tạo mật khẩu muối TYPO3?

$ P $ CeO/XYcbzRH9nLpCwKdp1HhsJGwJum0

Tôi đang tìm kiếm một mã php để tạo ra cùng mã hóa và kiểm tra mật khẩu. Tôi có khóa mã hóa từ các công cụ cài đặt mà tôi tin tưởng được sử dụng để làm muối.

Hoặc có khả năng lưu mật khẩu dưới dạng MD5 không? Không phải là lựa chọn tốt nhất nhưng tôi có thể là người duy nhất còn lại.

Tôi đã tìm thấy url này: http://srv123.typo3.org/TYPO3/Extensions/saltedpasswords/4.6/#compatibility-of-other-extensions-with-salted-user-password-hashes

Nhưng tôi không có đầu mối làm thế nào để thực hiện điều đó trong kịch bản của riêng tôi.

+1

KHÔNG mã hóa mật khẩu! Rò rỉ ở khắp mọi nơi những ngày này bởi vì các nhà phát triển nghĩ rằng họ cần phải giải mã mật khẩu ... Cũng không sử dụng MD5(), nó đã bị tấn công rồi. Ngoài ra, hãy xem câu hỏi này http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords –

Trả lời

2

Bằng cách nhìn vào băm cung cấp Tôi cho rằng saltedpasswords phần mở rộng (chịu trách nhiệm cho việc lưu trữ băm ướp muối trong cơ sở dữ liệu) trong Typo3 được thiết lập để sử dụng phpass. Do đó, bạn nên có thể tham gia lớp học này và sử dụng nó trong kịch bản của bạn để tạo/kiểm tra mật khẩu theo cách tương tự như TYPO3.

Hoặc có khả năng lưu mật khẩu dưới dạng MD5 không?

Có, sử dụng mật khẩu muối trong TYPO3 là tùy chọn và không bắt buộc. Tuy nhiên, nếu bất kỳ cài đặt TYPO3 nào trong tương lai sẽ được sử dụng cơ sở dữ liệu đó, tôi không chắc làm thế nào TYPO3 sẽ xử lý hỗn hợp các bản ghi khi một số người trong số họ có mật khẩu được lưu trữ dưới dạng băm không có muối và một số như muối. Tôi đoán là, nó sẽ xử lý nó một cách duyên dáng, công nhận kiểm tra để sử dụng cho mỗi băm.

+0

Bạn không giải thích được câu hỏi của bạn tại sao cơ sở dữ liệu TYPO3 đang được sử dụng, cho dù nó đã chứa một số bản ghi và liệu trong tương lai nó sẽ được sử dụng bởi một số cài đặt TYPO3 sao cho câu trả lời của tôi có thể không hoàn toàn chính xác. – tmt

+0

Chỉ sử dụng db cho người dùng cuối để đăng nhập trên trang web khác để xem một số trang. Đăng ký và tất cả được xử lý trên trang web Typo3. Đó là lý do tại sao tôi chỉ cần mật khẩu muối. Theo như MD5 chỉ, tôi có thể đặt MD5 vượt qua trong db trực tiếp. Sau khi đăng nhập vào MD5, Typo3 sẽ tự động chuyển đổi thành mật khẩu muối. –

+0

Cảm ơn cascaval, chỉ là câu trả lời tôi cần để hướng dẫn tôi đúng cách. Các mật khẩu muối thực sự được thiết lập để sử dụng phpass. Tôi đã tải xuống khung công tác tại: http://www.openwall.com/phpass và được quản lý để tạo các băm mà tôi có thể so sánh với các băm trong db. Tôi cần thiết để đặt '$ hash_portable = TRUE;' và đó là nó. Cảm ơn sự giúp đỡ của bạn. –

7

Hãy nhìn vào hướng phát triển:

1.5.1 Creating a new salted user password hash from a given plain-text password

Bạn phải sử dụng nó trong 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); 
    } 
    } 
} 

Nhưng, bạn không bao giờ nên cố gắng tạo ra muối mật khẩu bên ngoài typo3 vì mã hóa phụ thuộc vào cài đặt typo3 của bạn.

+0

Đó chỉ là vấn đề. Tôi không muốn sử dụng nó trong giao diện Typo3. –

13

Hoạt động trên 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); 
      } 
     } 
    } 
Các vấn đề liên quan