Şifre iki yönlü işlem için iyi bir seçenek nedir?

4 Cevap php

Ben Kohana şifreleme sınıfını kullanarak planlıyorum ama bir iki yönlü işlem yapmanın daha iyi ve daha güvenli bir yolu var mı? Ben benim kullanıcıların onlara bir sıfırlama birini vermek, onların önceki şifreleri için istekleri değil göndermek mümkün olmak istiyorum.

Eğer önerebilirsiniz herhangi algoritmaları veya kitaplıkların? PHP prticularly?

4 Cevap

Ben iki yönlü şifreleme yapmazdı. Bunu tüm şifreleri etkili tehlikeye kodundaki şifreleme anahtarına erişimi gerekir beri tüm temelde hiçbir şifreleme bulunuyor.

Sen tek yönlü SHA1 veya MD5 (SHA1 iyidir) gibi işlevleri vardır kullanmanız gerekir. Kullanıcı giriş çalıştığında, onlar kullanılan parolayı şifrelemek ve saklanan var ne karşılaştırın.

Kim sunucuya anahtar tutan temelde tüm şifreleri erişimi olacak çünkü iki yönlü bir şifreleme, gitmek için yol değildir. Yani bir hoşnutsuz çalışanı veya yöneticisi varsa, bunlar kullanıcı hesabı tüm verileri ile yürüyebiliyordu anlamına gelir. Ayrıca, nasıl size ihtiyacınız gizli anahtarı güvenli olacak? Eğer kullanıcıya şifre vererek yaparken nasıl site ve kullanıcı arasındaki iletişimi güvenli olacaktır. Benim tavsiyem oraya gitmek değil etmektir.

To Encrypt:

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));

To Decrypt:

rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

Yine de, (tuz ile!) Parolalarınızı karma ve kullanıcılara sıfırlama bağlantısı, hatta kendinizi / sizin nihai hatalarından güvende olacağım bu şekilde vermek için, tercihen bulunuyor.

Ben herkesin favori geliştirme topluluk sitesi sonra modellemek istiyorum.

Ama bütün ciddiyetiyle, o son kullanıcıya alınır ve görüntülenir olabilir gibi sizin backend şifreyi barındıran bazı güvenlik sorunları açılır:

  • Veritabanı / anahtara erişimi olan tüm şifreleri erişim
  • Ekran için son kullanıcılara gönderilen Parolalar kokladı olabilir

Ben tek yönlü bir hash (- SHA-1 birkaç yıl iyiydi ama insanlar her zaman şifreleme algoritmaları çatlama ilerleme yapıyoruz iyi algoritma için google) öneririz. Sadece son kullanıcı tarafından sağlanan parola hash uygulamak ve sakladığınız karma şifre karşılaştırın - çıkan dizeleri maç eğer başarılı kimlik var.

Yerine kanıtlanmış bir ortak anahtar veya simetrik anahtar algoritmasını kullanmak istiyorsanız, en azından düz metin olarak ağ üzerinden parola göndermek asla bir çaba alır.