2009-12-26 21 views
21

Web sitemde oturum açmak için jQuery dialog modal kutusum var. Bir kullanıcı tıklama aşağıdaki gibi bir login.php dosyasına bir post isteği yapar giriş yaptığında:Parola göndermek için javascript'te MD5 nasıl kullanılır?

$.post(
     'includes/login.php', 
     { user: username, pass: password }, 
     onLogin, 
     'json'); 

nasıl sonrası isteğinde koymadan önce bu şifre bir md5 yapacağız? Ayrıca, kullanıcının şifreleri MD5() kullanarak MySQL veritabanında saklıyorum, bu yüzden şifrenin saklanan sürümünü sadece gönderilen parola MD5 ile karşılaştırmak istiyorum. Cevap veren herkese teşekkürler.

+13

Daha iyi kullanım SSL: En ziyaret edebilirsiniz diğer karma hesaplama algoritmaları Daha fazla bilgi ve destek için

. – Gumbo

+0

Gumbo ile Anlaşıldı. Sonra sunucu tarafında SHA256 kullanın – AntonioCS

+2

Ben SSL etkin, ama şifrelenmiş http üstbilgisi içinde şifreli şifrelemek istiyorum. – adhanlon

cevap

27

crypto-js birçok kriptografi algoritması içeren zengin bir javascript kütüphanesidir.

yapmanız gereken tek şey sadece CryptoJS.MD5(password)

+12

Bu eklenti bir sebepten dolayı artık mevcut değil. Burada bir sürüm var: http://www.richardpeacock.com/dev/files/jquery.md5.js.txt – Rob

+5

Muhtemelen çok daha fazla standart http://code.google.com/p/crypto- kullanmalısınız. js/kripto-js ve ihtiyacınız olan kripto için JS'leri içerir. –

+2

Bağlantılı eklentinin şu anda kullanılamayacağı göz önüne alındığında bu cevabın bir miktar bakım ve dikkat gerektirdiğini düşünüyorum. – Kev

4

Bu sayfayı kontrol etmek isteyebilirsiniz: (MD5 kriptografik iirc değildir) şifresini koruyan önemliyse http://pajhome.org.uk/crypt/md5/

Ancak, gerçekten SHA256 gibi bir şey kullanarak olmalıdır. Dahası, TLS'yi kullanmayı ve bir sertifika almayı düşünebilirsiniz, böylece https kullanabilirsiniz.

+0

Cevabınız için teşekkürler, web sitem için https kullanıyorum, ancak bazı nedenlerle apache sayfayı iletirken şifreleme kullanıyor, ancak sayfa yüklendikten sonra hala https kullanıyor, ancak sayfa şifrelenmiyor. Gönderildiğinde giriş bilgilerini hala şifreleyecek mi? – adhanlon

+0

Uzman değilim, ancak şifreli olup olmadığını görmek için bir test makinesini koklayan paketi deneyebilirsiniz. – SapphireSun

26

birisi koklama ise

$.post(
    'includes/login.php', 
    { user: username, pass: CryptoJS.MD5(password) }, 
    onLogin, 
    'json'); 
senin düz metin HTTP trafiği (veya önbellek/çerezler) şifreler için sadece bir karma haline parolası dönüm yardımcı olmaz diyoruz edilir - Karma şifre sadece düz metin kadar "yeniden oynatılabilir". İstemci (tarih ve saat gibi) biraz rastgele bir şeyle şifresinin hash gerekir burada "AUTH CRAM-MD5" bölümüne bakın: Buna karşılık http://www.fehcom.de/qmail/smtpauth.html

+4

+1 Bunun güvenli olmadığını açıklayan tek cevap. – Pablo

+0

SSL kullanılıyorsa bu soru güvenlidir ve soru böyle olmadığını söylemez. – malthe

+0

@malthe Basic auth, SSL – Motes

2

jt için. Haklısınız, sadece şifre ile HTML orta saldırıdaki Adam'a karşı hassastır. Ancak, Bu sunucu her girişim için yeni bir GUID oluşturmak olacağını Man-In-orta ... lütfen yenilgi olacaktır

$.post(
    'includes/login.php', 
    { user: username, pass: $.md5(password + GUID) }, 
    onLogin, 
    'json'); 

... sunucudan bir GUID ile yapabilirsiniz tohum o.

+2

evet, bu iyi bir fikir. Bu tür bir meydan okuma/yanıt yaklaşımı, http://pajhome.org.uk/crypt/md5/auth.html – Menace

15

Bu durumda CryptoJS'yi kullanmanızı öneririm.

Temelde CryptoJS, JavaScript'te en iyi uygulamalar ve kalıplar kullanılarak uygulanan standart ve güvenli kriptografik algoritmalardan oluşan bir koleksiyon topluluğudur. Hızlılar ve tutarlı ve basit bir arayüze sahipler.

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script> 
<script> 
    var passhash = CryptoJS.MD5(password).toString(); 

    $.post(
     'includes/login.php', 
     { user: username, pass: passhash }, 
     onLogin, 
     'json'); 
</script> 

Yani bu komut sunucusuna şifre dize karmasını yayınlayacağız:

Yani Eğer aşağıdaki gibi daha sonra yapmak şifrenizi dize karmasını (MD5) hesaplamak istiyorum. bağlantının güvenliğini sağlama

http://code.google.com/p/crypto-js/

+0

'da da yanıtlanmıştır. Iyi yanıtlanmıştır :) –

+0

Bu cevap için teşekkürler ... şifreleme/şifre çözme yöntemleri nasıldır? JavaScript ile C#/VB.NET arasındaki javascript için önerilen bu yanıttır ve ayrıca bu http://msdn.microsoft.com/en-us/library/system.security.cryptography.md5(v=vs adresine de bakmak isteyebilirsiniz. .110) .aspx için C# –

İlgili konular