md5 çözen betik

Başlatan gotocan, 10 Ocak 2010 - 16:48:53

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

gotocan

Diyelim ki bir şifrenizi unuttunuz ve elinizdeki veritabanından sadece md5 ile kripte (! :s ) edilmiş haline ulaşabiliyorsunuz.
Gülmeyin, bazen insanın başına gelebiliyor.

md5'in algoritması gereği geri dönüşü pek kolay değil, ya da mümkün değil.
Ancak aşağıdaki betik biraz zaman alsa da her ihtimali deneyerek eski şifrenizi size söylüyor.


#!/usr/bin/env python
#-*-coding:utf-8-*-
from __future__ import generators
import hashlib

def xselections(items, n):
    if n==0: yield []
    else:
        for i in xrange(len(items)):
            for ss in xselections(items, n-1):
                yield [items[i]]+ss

if __name__=="__main__":
giris = raw_input("md5 kodunu giriniz: ")

liste = []
for i in range(33, 128):
liste.append(chr(i))
a = 1
b = True
while b == True:
print a
for c in xselections(liste,a):
sonuc = ''.join(c)
mdfive = hashlib.md5(sonuc)
if mdfive.hexdigest() == giris:
print "Doğru sonuç : ", sonuc
b = False
a += 1




Şuralardan yararlandım:
http://code.activestate.com/recipes/190465/
http://docs.python.org/library/hashlib.html

Sorunlar:
Sadece ASCII üstünden çalışıyor, şifrenizde harici karakterler ("ö,ç,ş,i,ğ,ü...") varsa çözmez.
4 karakterlik bir şifreyi çözmesi 10 dakika alabiliyor.

Saygılar...
goto www.gotocan.com;
http://ubuntucounter.geekosophical.net//img/ubuntu-user.php?user=28544
Nam-ı diğer : macellan

canosayan

kabakuvvet (brute-force) bir nevi

ama veritabanına ulaşabiliyorsanız daha kolayı var sanki. veritabanındaki şifreyi 827ccb0eea8a706c4c34a16891f84e7b ile değiştirirsiniz. şifreniz 12345 olur.

yinede sizinkide güzel. ben bu metodu tersini almanın çok zor olduğu fonksiyonlarda kullanıyorum
Chmod bizim işimiz.

ironic


MD5' te henüz  şifreyi çözmeye (decrypt) dönük bir yol keşfedilmedi diye biliyorum. Zaten kenidisi de şifreleme yapmaz. MD5 uzayı sınırlı olduğu ve aynı değeri veren birden fazla ifade olacağı için, anca deneme-yanılma yoluyla şansını deniyorlar. (brute force tekniği )



gotocan

Alıntı yapılan: canosayan - 10 Ocak 2010 - 16:52:54
kabakuvvet (brute-force) bir nevi

ama veritabanına ulaşabiliyorsanız daha kolayı var sanki. veritabanındaki şifreyi 827ccb0eea8a706c4c34a16891f84e7b ile değiştirirsiniz. şifreniz 12345 olur.

Evet, biraz kabakuvvet. Fakat bunu ne amaçla kullanacağınıza göre değişir.
Eğlence olsun diye yazılmış bir şey zaten... :)
goto www.gotocan.com;
http://ubuntucounter.geekosophical.net//img/ubuntu-user.php?user=28544
Nam-ı diğer : macellan

GAREZ


bytan

Bir dosyaya kaydedip çalıştırma hakkı vererek çalıştırdın mı? Tabii sisteminde python'da olmalı.
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

GAREZ

python varda çalıştırma hakkı nasıl verilecek?

bytan

Dosyayı hangi isimle kaydettiysen:

chmod +x Dosyaİsmi

Çalıştırmak için:

python Dosyaİsmi
Umut en büyük kötülüktür; işkenceyi uzatır. - F.N.


Bir şey ne ise odur, bu kadar. Öyleyse, iki şey arasında bağdaşıklık varsa, bu aralarında iletişim kuruyorlar demek değildir.
"... kavrayışını bilgi ile derinleştir ..."
PF @ ST

GAREZ

tamamdır şimdi çalıştı...

ytgn

Alıntı yapılan: gotocan - 10 Ocak 2010 - 16:48:53
Diyelim ki bir şifrenizi unuttunuz ve elinizdeki veritabanından sadece md5 ile kripte (! :s ) edilmiş haline ulaşabiliyorsunuz.
Gülmeyin, bazen insanın başına gelebiliyor.

Gelebiliyor tabii ki @gotocan. Bu gibi durumlarda veritabanına erişebiliyor ve düzenleyebiliyorsak sorunu çözmek daha kolay. Veritabanındaki md5 kripte edilmiş şifreyi, bildiğimiz bir şifrenin md5 ile kripte edilmiş hali ile değiştirebiliriz.

Örnek olarak, http://www.linuxsever.com/md5.php adresindeki gibi md5 çeviriciyi kullanabilirsiniz.
Gelecek için ubuntu ile yeni bir adım..

canosayan

bunun birde sda1 çözeni olsa. yada ben yazsam bir ara.
Chmod bizim işimiz.

gotocan

Alıntı yapılan: ytgn - 14 Şubat 2010 - 13:54:44
Alıntı yapılan: gotocan - 10 Ocak 2010 - 16:48:53
Diyelim ki bir şifrenizi unuttunuz ve elinizdeki veritabanından sadece md5 ile kripte (! :s ) edilmiş haline ulaşabiliyorsunuz.
Gülmeyin, bazen insanın başına gelebiliyor.

Gelebiliyor tabii ki @gotocan. Bu gibi durumlarda veritabanına erişebiliyor ve düzenleyebiliyorsak sorunu çözmek daha kolay. Veritabanındaki md5 kripte edilmiş şifreyi, bildiğimiz bir şifrenin md5 ile kripte edilmiş hali ile değiştirebiliriz.

Örnek olarak, http://www.linuxsever.com/md5.php adresindeki gibi md5 çeviriciyi kullanabilirsiniz.

Ya veritabanına da kısıtlı olarak erişebiliyorsak?
Yani veri okuma izniniz var ama değişiklik yapamazsınız.
Hakikaten başıma geldi yahu. :)
goto www.gotocan.com;
http://ubuntucounter.geekosophical.net//img/ubuntu-user.php?user=28544
Nam-ı diğer : macellan

devturk

buda basak bır permutatıon.sanırım daha yalın
>>> def perm(wrd, n, s="", lst=[]):
...     if len(s)==n: return s
...     for x in range(len(wrd)):
...             w=perm(wrd, n, s+wrd
  • )
    ...             if isinstance(w, str):
    ...                     lst.append(w)
    ...     return lst
    ...
    >>>
    >>>
    >>>
    >>>
    >>>
    >>> for x in perm("ab", 2): print x
    ...
    aa
    ab
    ba
    bb
    >>>