Giriş yapmadınız.

#1 05.05.2016 16:52:00

ferhatyesilmen
Üye
Kayıtlı: 31.05.2014
Mesajlar: 59

Laravel 5.2 Hash sorusu?

Arkadaşlar merhaba,
Laravel 5.2 kullanarak bir proje geliştirmekteyim. Kullanıcı şifrelerini Hash::make() ile şifreliyorum, db'e şifreleri bir şekilde kayıt ediliyor bunda sıkıntı yok.
Kullanıcı kayıt yaptıktan sonra, ben APP_KEY değiştirirsem kullanıcının sisteme girememesi gerekmez mi? Benim mantığıma göre öyle olması lazım smile Bu zaman kadar hiç test etmemiştim.
test sonucunda key değiştikten sonra eski şifresi ile hala giriş yapılabilmekte ben olayı çokmu farklı anlamışım  smile
İyi çalışmalar.

Çevrimdışı

#2 05.05.2016 18:59:57

kzorluoglu
Üye
Kayıtlı: 27.12.2015
Mesajlar: 194

Yanıt: Laravel 5.2 Hash sorusu?

Hash sinifindaki, make funksiyonunda APP_KEY bir veri olarak islenmiyor, sadece php bycrpt sinifi kullaniliyor. Bu yüzden bir etkisi olmamakta.:)
Dökümantasyon : https://laravel.com/api/5.1/Illuminate/ … asher.html
Kaynak Kodu : https://github.com/laravel/framework/bl … Hasher.php

Çevrimdışı

#3 05.05.2016 19:35:18

ferhatyesilmen
Üye
Kayıtlı: 31.05.2014
Mesajlar: 59

Yanıt: Laravel 5.2 Hash sorusu?

O zaman veriyi hash leyerek db 'e kaydetmenin nasıl bir avantajı oluyor bu konuda bilgi verirseniz sevinirim.
yani demek istediğim veri tabanına ulaştıktan sonra şifreyi kırmak gibi bir zorunluluğu olmadıktan sonra, nasıl olsa başka bir has değeriyle geçilebiliniyorken, şifreler açık olsa ne yazar smile

Çevrimdışı

#4 06.05.2016 09:32:42

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 377
Website

Yanıt: Laravel 5.2 Hash sorusu?

    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY', ''),

    'cipher' => 'AES-256-CBC',

used by the Illuminate encrypter Yani "app key" encryption olayları için kullanılmaktadır. Testlerinizi encryption için yaparsanız orada kullanıldığını göreceksiniz.
https://laravel.com/docs/master/encryption

Ayrıca Hash mantığı ile ilgili mantığı anlamak için aşağıdaki makale işinize yarayabilir.
https://mnshankar.wordpress.com/2014/03 … explained/

Son düzenleyen evrend (06.05.2016 09:34:36)


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

#5 06.05.2016 09:36:52

kzorluoglu
Üye
Kayıtlı: 27.12.2015
Mesajlar: 194

Yanıt: Laravel 5.2 Hash sorusu?

kisa ve öz aciklama olarak;
Hash algoritmasi senin bilgisayarin bilgilerini kullanarak o servere özel bir sifreleme ürettirir. Bu sayede Senin veritbanina ulasan insan elindeki kodlarla hic birsey yapamaz, ancak sifrenin ilk halini bilmesi gerekir cünkü sifre dogrulama formdan giris yaptiktan sonra yazdigin sifreyi hash ile sifreler, daha sonra hashleri kontrol eder..

$formdan_girilen_sifre= "123456"
$sifrelenmis_girilen_sifre = "$2a$06$8nej7MWuOwBL7RQbBnJiJ.vQYv.QpHLuqJXhFrVsazhhIe4J0SI5q"
$veritabanindaki sifre  = "$2a$06$8nej7MWuOwBL7RQbBnJiJ.vQYv.QpHLuqJXhFrVsazhhIe4J0SI5q"
if($sifrelenmis_sifre == $veritabanindaki_sifre){
echo "bu o adam...."
}

Bu sayede senin veritabaninin ben bile almis olsam, ancak trene baktigimiz gibi bakarim..

Dipnot: Simdi sifreler kirilirmi, kirilamaz mi konusunu girmek cok sacma, sen bir MIT sitesi degilsin ki, senin sifreni cözmeleri icin yüzbinlerce dolar harcayarak Supercomputing kurupta sifreni cözmeye ugrassinlar. MIT sitesi olmus olsaydin zaten veri sifrelemeyi bir baskasinin algoirtmasina birakmaz idin. O yüzden ilk önce emeklicez, sonra bakarsin Uzay'a cikariz, diyerek bu kirma dökme islerini aciklamayi kapatayim.

Çevrimdışı

#6 06.05.2016 09:39:30

kzorluoglu
Üye
Kayıtlı: 27.12.2015
Mesajlar: 194

Yanıt: Laravel 5.2 Hash sorusu?

evrend yazdı:
    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | This key is used by the Illuminate encrypter service and should be set
    | to a random, 32 character string, otherwise these encrypted strings
    | will not be safe. Please do this before deploying an application!
    |
    */

    'key' => env('APP_KEY', ''),

    'cipher' => 'AES-256-CBC',

used by the Illuminate encrypter Yani "app key" encryption olayları için kullanılmaktadır. Testlerinizi encryption için yaparsanız orada kullanıldığını göreceksiniz.
https://laravel.com/docs/master/encryption

Ayrıca Hash mantığı ile ilgili mantığı anlamak için aşağıdaki makale işinize yarayabilir.
https://mnshankar.wordpress.com/2014/03 … explained/

Hash mantigini ile ilgili döküman eski ve güncel degil, crpyt yerine artik http://php.net/manual/de/function.password-hash.php fonksiyonu kullanilmakta. Mantigi gayet basittir. Kaynak kodundan görebilirsiniz.
https://github.com/laravel/framework/bl … Hasher.php

Son düzenleyen kzorluoglu (06.05.2016 09:40:00)

Çevrimdışı

#7 06.05.2016 09:42:15

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 377
Website

Yanıt: Laravel 5.2 Hash sorusu?

@kzorluoglu dipnot,
Hash tam olarak şifreleme(crypt) olarak düşünülemez. Hash uygulanmış veriye, geri döndürülme ihtimali olmasın diye Hash işlemi uygulanır. Aksi takdirde crypt işlemi uygulayarak, şifreleri şifreler ve saklardık. Ama key'e ulaşıldığında şifrelere de ulaşılmış olurdu. Forumda birkaç yıl önce bu konular konuşulmuştu ama konuları bulamadım.


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

#8 06.05.2016 09:44:44

evrend
Üye
Yer: DÜZCE
Kayıtlı: 26.05.2014
Mesajlar: 377
Website

Yanıt: Laravel 5.2 Hash sorusu?

Laravel Master Branch'ına gözatabilirsin. Referansı dökümandan değil config dosyasından vermiştim.
https://github.com/laravel/laravel/blob … pp.php#L88

Buraya da not düşmüş olayım; Bununla alakalı konuların tartışıldığı konuyu buldum;
Aşağıdaki konuda yazdığım yorumdan anlaşılan, o zaman ben de app key'in Hash için kullanıldığını düşünüyormuşum.
https://forum.laravel.gen.tr/viewtopic.php?id=519

Son düzenleyen evrend (06.05.2016 10:03:42)


Unutmayın, HERKOD aynı değildir.
Fiyat/Performans Cloud için: Digital Ocean.
Ayda 2,5$'a 512Mb ram, 1Core CPU Cloud için: Vultr.

Çevrimdışı

#9 06.05.2016 10:03:33

kzorluoglu
Üye
Kayıtlı: 27.12.2015
Mesajlar: 194

Yanıt: Laravel 5.2 Hash sorusu?

neyse sorulmayan seylere cevap vermiyeyim. smile
https://laravel.com/docs/master/hashing

Son düzenleyen kzorluoglu (06.05.2016 10:05:06)

Çevrimdışı

#10 07.05.2016 14:35:18

ferhatyesilmen
Üye
Kayıtlı: 31.05.2014
Mesajlar: 59

Yanıt: Laravel 5.2 Hash sorusu?

Değerli cevaplarınız ve ilginiz için hepinize teşekkür ediyorum.
Daha önceki hash işlemlerinde hep bir key kullanarak yapıyordum. Laravel'de de yapının bu şekilde olduğunu düşünmüştüm sayenizde  anladığımı düşünüyorum:

örn : http://hashids.org/

@kzorluoglu , öncelikle böyle bir soru somamım sebebi kullanıcılarımın şifresinin çok önemli olduğunu düşündüğüm içindir.Bu benim MİT olmamı gerektirmez. İşin içinde para olan bir proje yapmaktayız, para için neler yapılmaz ki düşüncesinden dolayı en azından aklıma gelen soruları sormak için uzaya çıkmayı düşünmemin gerekmediği kanaatimdeyim.

Aydınlatıcı cevapların için tekrardan teşekkür ederim. İyi çalışmalar.

Çevrimdışı

#11 07.05.2016 16:39:35

kzorluoglu
Üye
Kayıtlı: 27.12.2015
Mesajlar: 194

Yanıt: Laravel 5.2 Hash sorusu?

o dipnot olarak yazmamin sebebi aslinda sana degil umumi olarak bir not idi, malum bu tarz konularda genelde bizler biraz yükseklerden konusuyoruz, o acidan öyle yazdim. Yani sadece Laravel Sifrelemesinden ve Sifrelemesinin hashlenmesinden bahsedilen bir konu olarak kalmasini saglamak amac.:)

Çevrimdışı

Forum alt kısmı