Bir joomla kullanıcı parola oluşturmak için kullanarak php?

5 Cevap php

Ben Joomla için özel bir kayıt bileşeni oluşturmak için çalışıyorum ve herkes joomla için doğru şifre şifreleme oluşturmak için nasıl biliyordu merak ediyordum? Joomla şifreleri şöyle:

fbae378704687625a410223a61c66eb1: VM6DwmVWHTwpquDq51ZXjWWADCIc93MR

Ben md5 (veya bir şey) olduğuna inanıyoruz ve tek yönlü şifreleme hangisi? Sadece aynı şifreleme oluşturmak için türlü bir php kod arıyorum.

Şerefe

5 Cevap

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

Biraz daha arama yaptıktan sonra benim cevap, teşekkürler yardım için adamlar :) bulundu

EDIT: Ben JUserHelper çağırmadan önce bu satırı eklemek gerektiğini söylemeyi unutmuşum:

jimport ('joomla.user.helper');

Joomla Forum'dan, arkasında ne ne:

  1. Bir parola oluşturmak
  2. 32 rasgele karakterler üretmek
  3. Bitiştirmek 1 ve 2
  4. md5 (3)
  5. depolamak 04:02

Örnek:

  1. Bir parola oluşturmak - we'll use 'password'
  2. 32 rasgele karakterler üretmek - we'll use 'WnvTroeiBmd5bjGmmsVUnNjppadH7giK'
  3. Bitiştirmek 1 ve 2 - passwordWnvTroeiBmd5bjGmmsVUnNjppadH7giK
  4. md5 (3) - 3c57ebfec712312f30c3fd1981979f58
  5. depolamak 04:02 - 3c57ebfec712312f30c3fd1981979f58:WnvTroeiBmd5bjGmmsVUnNjppadH7giK
  //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;
    }

Bu işlevde, ben base64_encode ile dize 5 kez şifreli ve strrev () ve () base64_decode uygulayarak sonra ilk dizesi tersine çevirerek 5 kez deşifre için dize ters ettik.

Şifre sağlamasını depolamasını yerine parola kendisini saklamak için +1.

precomputation karşı korumak için rastgele bir tuz kullanmalıdır saldırır. Ek olarak muhtemelen ben PHP desteklenir düşünüyorum böyle SHA-256 gibi güçlü bir karma algoritması kullanmak iyi bir fikirdir. Secure hash and salt for PHP passwords daha fazla bilgi için bkz.

Ben PHP bilmiyorum, ama çoğu dil MD5 ve (ve diğer karma algoritmalar) destekleyen bir kütüphane var PHP de görünüyor. Bunu buldum:

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

»RSA Data Security, Inc MD5 Message-Digest Algoritması'na str MD5 hash hesaplar ve bu karma döndürür.

İşte bir örnek:

<?php
$password = 'apple';

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

Sen /libraries/joomla/user gidin ve user.php içindeki bind() işlevi görebilir

Tüm kullanıcılar şifreleri kayıt zamanında oluşturur burada olacak.