2010-04-28 36 views
8

Tôi đang cố gắng tạo một thành phần đăng ký tùy chỉnh cho Joomla, và tôi đã tự hỏi liệu có ai biết cách tạo mã hóa mật khẩu chính xác cho Joomla không? mật khẩu Joomla trông như thế này:sử dụng php để tạo mật khẩu người dùng joomla?

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

Mà tôi tin là md5 (hoặc một cái gì đó) và một cách mã hóa? Tôi chỉ đang tìm kiếm một mã php để tạo ra cùng một mã hóa.

Cheers

+0

Vui lòng kiểm tra điều này -> http://stackoverflow.com/questions/35333417/joomla-3-4-password-generation-method/35337002#35337002 – Joomler

Trả lời

11
$salt = JUserHelper::genRandomPassword(32); 
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt); 
$password = $crypt.':'.$salt; 

Sau hơn một chút tìm kiếm tôi tìm thấy câu trả lời của tôi, nhờ kẻ giúp đỡ của bạn :)

EDIT: Tôi quên đề cập rằng bạn cần phải bao gồm dòng này trước khi gọi JUserHelper:

jimport ('joomla.user.người giúp đỡ');

+0

tính năng này không hoạt động trong joomla 3.4 –

-1
//function to encrypt the string 
    function encode5t($str) 
    { 
     for($i=0; $i<5;$i++) 
     { 
     $str=strrev(base64_encode($str)); //apply base64 first and then reverse the string 
     } 
     return $str; 
    } 

    //function to decrypt the string 
    function decode5t($str) 
    { 
     for($i=0; $i<5;$i++) 
     { 
     $str=base64_decode(strrev($str)); //apply base64 first and then reverse the string} 
     } 
     return $str; 
    } 

Trong chức năng này, tôi đã được mã hóa chuỗi 5 lần với base64_encode và đảo ngược chuỗi với strrev() và để giải mã 5 lần bằng cách đảo ngược chuỗi đầu tiên sau đó áp dụng base64_decode().

+3

** KHÔNG LÀM NÀY! ** Đây không phải là "mã hóa "theo bất kỳ nghĩa nào, đây là sự xáo trộn đơn giản mà sẽ không đánh bại ngay cả những kẻ tấn công cơ bản nhất. –

2

+1 để lưu trữ mật khẩu của mật khẩu thay vì lưu trữ mật khẩu.

Để bảo vệ chống lại các cuộc tấn công precomputation bạn nên sử dụng một loại muối ngẫu nhiên. Additionaly có lẽ là một ý tưởng tốt để sử dụng một thuật toán băm mạnh hơn như SHA-256 mà tôi nghĩ là được hỗ trợ trên PHP. Xem Secure hash and salt for PHP passwords để biết thêm thông tin.

Tôi không biết PHP, nhưng hầu hết các ngôn ngữ đều có thư viện hỗ trợ md5 và (và các thuật toán băm khác) PHP cũng xuất hiện. Tôi đã tìm thấy điều này:

string md5 (string $str [, bool $raw_output = false ]) 

Tính toán băm MD5 của đường bằng cách sử dụng thuật toán "RSA Data Security, Inc. MD5 Message-Digest" và trả về giá trị băm đó.

Dưới đây là một ví dụ:

<?php 
$password = 'apple'; 

if (md5($password) === '1f3870be274f6c49b3e31a0c6728957f') { 
    echo "Password correct"; 
} 
?> 
12

Từ joomla diễn đàn, đó là những gì xảy ra đằng sau:

  1. Tạo một mật khẩu
  2. Tạo 32 ký tự ngẫu nhiên
  3. CONCATENATE 1 và 2
  4. md5 (3)
  5. cửa hàng 4: 2

Ví dụ:

  1. Tạo một mật khẩu - chúng tôi sẽ sử dụng 'mật khẩu'
  2. Tạo 32 ký tự ngẫu nhiên - chúng tôi sẽ sử dụng 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. CONCATENATE 1 và 2 - passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. md5 (3) - 3c57ebfec712312f30c3fd1981979f58
  5. cửa hàng 4: 2 - 3c57ebfec712312f30c3fd1981979f58: WnvTroeiBmd5bjGmmsVUnNjppadH7giK
1

Bạn có thể vào /libraries/joomla/user và xem chức năng bind() trong số user.php

Tất cả mật khẩu người dùng tạo trong thời gian đăng ký sẽ có tại đây.

Các vấn đề liên quan