Daha iyi bir yolu kullanarak php de çözülebilecek mysql şifrenizi kaydetmek

8 Cevap php

Şu anda benim şifresini şifrelemek ve deşifre edilemez mysql db kaydetmek için md5 fonksiyonu kullanıyorum.

Şimdi benim kullanıcı onlar şifremi unuttum ne zaman, onların yerine yeni şifre aynı (eski) şifre almak gerektiğini istiyorum.

So my question is that what should i use to encrypt my password and store in mysql Database. And i can decrypt that password also.

PHP ve MySQL üzerinde çalışan duyuyorum.

Teşekkürler

Avinash

8 Cevap

Bunu yapmayın ...

Birincisi, md5 daha iyi bir şey kullanın. Ardından parola "reset", ama aslında hiç db şifresini retreive için bir yol için bir yol oluşturmak ...

Bu sizin app daha az güvenli hale, ama belki daha da kötü olacaktır; veri çalınması durumunda sizin ve kullanıcılar bir sorun olacak! Birisi adları ve tüm kullanıcıların şifreleri ile bir veritabanına sahip oluyor!

Şifreleme yerine karma size app için düşük güvenlik anlamına şifresini anahtarı saklamak zorunda olduğu anlamına gelir. Parola sıfırlama ve onlara yeni bir tane gönderecektir.

Bunu yapmayın, bu sizin güvenliğini tehlikeye sokacaktır! Tek yönlü şifreleme fikrine veritabanı kesmek ise tüm kullanıcıların şifreleri e-posta adresleri ile birlikte bilinen olacak sorunla yüz olmaz ki!

nasıl crypt() veya yaklaşık openssl?

Size daha iyi şifrenizi sıfırlamak için bir yol oluşturabilirsiniz yapmak için güvenli değil

Eğer hiçbir güvenlik sorunları ile bir iç özel sitesi çalıştıran ediyorsanız, sadece XOR 0xAD şifre ile her bayt saklayın. Aksi takdirde, sıfırlama tek seçenektir.

Bu hareketsiz kazanılabilir olduğu bir şekilde şifre saklamak mümkün değildir ya da

1) yerine şifrenizi şifreleyerek / sağlama amacı yendi kod / veri şifre çözme anahtarı () depolama

2) Kamu / özel anahtar şifreleme kullanarak parola şifreleme şifre telafi edilebilir yarı manuel sürecinin som sıralama ile kurtarma yönlendirme.

Basit çözüm / sağlayan bir akım e-posta adresinizi korumak ve istek üzerine yeni bir şifre sağlamak için bu güvenliği güvenmek için kullanıcıların gerektiren etmektir.

C.

  • dinamik tuzları (2, bir, karma / crypting önce şifre ile karıştırmak için 'daimi' diğeri dinamik, her zaman kullanıcı günlükleri değişen) oluşturmak;

    $dynamicSalt = '';
    for ($i = 0; $i < 8; $i++) 
    {    
        $dynamicSalt .= chr(rand(33, 126)); 
    }
    
  • kullanıcıların sıfırlamak izin ama özgün bir şifre almak için size kalmış değil, daha sonra 'decode' onlar size yardımcı olabilir herhangi bir şekilde şifreleri kaydetmek asla

Eğer gerçekten, orijinal şifreleri kurtarmak yalnızca YAZMA izinlere sahip bir veritabanı hesabı oluşturmak ve (başka bir sunucuda?) Diğer bazı veritabanında saklamak gerekir.