Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Python] Problem z pętlą i md5()
Forum PHP.pl > Inne > Hydepark
ano
Cześć!
Czy mógłby mi ktoś powiedzieć, jak rozwiązać taki oto problem:
kod programu:
Kod
import md5

a="c4ca4238a0b923820dcc509a6f75849b"
b = 0

while b < 99:
    w = md5.new()
    w.update(b)
    w = w.hexdigest()

    if a==w:
        print b
        print w
        b=99
    else:
        print b
        b=b+1;

i taki oto błąd się wyświetla:
Kod
Traceback (most recent call last):
  File "D:\python\md5.py", line 11, in ?
    w.update(b)
TypeError: update() argument 1 must be string or read-only buffer, not int

Program miał za zadanie znalezienie/zdekodowanie ciągu md5 podanego w zmiennej "a".
Z tego co rozumiem, to nie może to zostać wykonane, ponieważ w funkcji update() niedopuszczalne jest podstawianie zmiennej, "która się zmienia" (?!?!) biggrin.gif biggrin.gif

Czy mógłby mi ktoś powiedzieć jak można rozwiązać ten problem?
bela
Spojrz w kod, robisz w.update() i podajesz do niej zmienną b, a nie a ;]
ano
E... chyba nie zrozumiałeś. To jest akurat OK, podaje "b" , dlatego żeby mi to zaszyfrowało i jeżeli to ("a" i b po md5() )będzie się zgadzało to wyświetli mi się rozwiązanie. (czyli w tym przypadku powinno się wyświetlić 1)
nospor
@ano ale to chyba ty nie czytasz komunikatow. Ja sie na pythonie nie znam, ale czytac umiem.
Cytat
update() argument 1 must be string or read-only buffer, not int
czyli parametr przekazany do funkcji update() musi byc stringiem, a nie intem. U ciebie b jest intem
ano
No właśnie, o to mi chodziło: jak to "b" zamienić na stringa?
nospor
jak pisalem ja na pythonie sie nie znam. ale znam google. jesli chcesz zamienic int na string to wystarczy tylko:
http://www.google.com/search?q=python+conv...pl&start=0&sa=N
ano
W google szukałem, ale nic nie udało mi się znaleźć (wogóle z tego co widzę nie ma fajnych stron o pythonie... :| )
nospor
ale szukales przed czy po moim linku? Bo w moim linku znalazlem conajmniej dwie strony (dalej juz nie szukalem), co mowią jak sie konwertuje inta na stringa:
http://mail.zope.org/pipermail/zope/2001-January/123230.html
http://www.ferg.org/projects/python_java_side-by-side.html

Cytat
myCounter = 0

myString = str(myCounter)
ano
Dobra, już mam, dzięki.
Wcześniej używałem str() jednak nie działał mi on, ponieważ wcześniej w kodzie miałem inne błędy smile.gif Teraz już wszystko działa!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.