Xenforoda sifreleme türünü nasıl sha256 nasıl yaparım
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.
Php'de hash tanımlı ise zaten sha256 kullanıyor. İncelemek isterseniz xenforo dosyalarınıza giderek şu yolu bulun;src\XF\Authentication\Core.php
<?php
namespace XF\Authentication;
class Core extends AbstractAuth
{
/**
* Hash function to use for generating salts and passwords
*
* @var string
*/
protected $hashFunc = 'sha1';
protected function setup()
{
if (!empty($this->data['hashFunc']))
{
$this->hashFunc = $this->data['hashFunc'];
}
else
{
$this->hashFunc = extension_loaded('hash') ? 'sha256' : 'sha1';
}
}
protected function createHash($hash)
{
switch ($this->hashFunc)
{
case 'sha256': return hash('sha256', $hash);
case 'sha1': return sha1($hash);
default: throw new \InvalidArgumentException("Unknown hash type");
}
}
protected function getPasswordHash($password, $salt)
{
return $this->createHash($this->createHash($password) . $salt);
}
public function generate($password)
{
if (!is_string($password) || $password === '')
{
return false;
}
$salt = $this->createHash(\XF::generateRandomString(20, true));
return [
'hash' => $this->getPasswordHash($password, $salt),
'salt' => $salt,
'hashFunc' => $this->hashFunc
];
}
public function authenticate($userId, $password)
{
if (!is_string($password) || $password === '' || empty($this->data))
{
return false;
}
$userHash = $this->getPasswordHash($password, $this->data['salt']);
return \XF\Util\Php::hashEquals($this->data['hash'], $userHash);
}
public function getAuthenticationName()
{
return 'XF:Core';
}
}
$2y$10$kk0nygUU10Bzw6UtmNRnhenD06YqsjkkAxQHfBEOsgIG5Xzxhitam
a:1:{s:4:"hash";s:60:"$2y$10$r06umS73qNSdqL3046Qp.e05LTMM1vqR1/8zvRxBjqQIH29snw.x2";}Oradaki fonksiyonda php tarafında sha256 varsa onu kullanır yoksa sha1 kullanır. Yani şöyle anlatayım daha açıklayıcı olsun:
extension_loaded fonksiyonu php hash tarafında sha256 mı yüklü yoksa sha1 mi yüklü bakıyor ikisinden hangisi yüklü ise onunla hash üretiyor.
XenForo 2'de zaten DB tarafında şifre saklama olayı değişti. Database üzerinden xf_user_authenticate-data.bin dosyasına bakarsanız oluşturduğu kodu görebilirsiniz. Ben kendi local sistemim de baktığımda şu şekilde bir kodun oluştuğunu görüyorum:$2y$10$kk0nygUU10Bzw6UtmNRnhenD06YqsjkkAxQHfBEOsgIG5Xzxhitam
Malesef oyle bir kaynak bulamadimAslında senin sorun tam olarak şu. Authme ile XenForo’yı nasıl entegre ederim.
Verdiğin link tarihine bakılırsa hem Authme hem de XenForo eski versiyonları geçiyor. Bence her iki tarafta hangi versiyonları kullanıyorsun o şekilde nette arattırma yap, bakalım neler bulacaksın.
Emin olmamakla beraber; eklenti klasöründe hashes.json dosyası olması lazım. Uyarı veren dosyanın kodunu oradan silersen uyarı kalkabilir.Bir eklentide değişiklik yaptım ve uyarı alıyorum (hashes) dosyasını nasıl düzenleyebilirim?
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.
Bu sitenin çalışması için temel çerezleri ve deneyiminizi geliştirmek için isteğe bağlı çerezleri kullanıyoruz.