konto usunięte

Temat: jak porównać bazy

Potrzebuje narzedzia, które będzie "porównywarką" baz danych. Ma to służyć do wychwycenia warości które występują zarówo w jednej jak i w drugiej bazie danych. Co więcej. W sytuacji kiedy chcę porównać wartości bazy A do warości z bazy B chciałbym mieć dostęp jedynie do wartości które się powtórzą, a nie do wszystkich. Czyli też pewnego rodzju "wyszukiwarka", tyle że inne wyszuje pojedyńczej wartości w bazie danych tylko wrzucam całą bazę danych(A) do "wyszukiwaki" i w wyniku dostaję listę wartości które się powtórzyły.
Ma to służyć do tego zeby klienci mogli porównywać swoje bazy z moją, ale nie mogli do woli przeglądać mojej bazy, a tylko te wartości które się powtarzają.
Jakub L.

Jakub L. Programista

Temat: jak porównać bazy

Napisz?
Jeżeli te bazy są odseparowane, czyli nie masz dostępu z jednej do drugiej, wpinasz się jakimś ODBC albo DBI do jednej i drugiej, robisz odpowiedni select order by tak, żeby w obu wynikach były tak samo posegregowane dane, i porównujesz jak posortowane ciągi.
Jeżeli masz dostęp z SQLa do obu baz na raz, możesz to samo zrobić w SQLu.
Jeżeli chcesz porównywać bardziej rozbudowane struktury, to musiałbyś poczytać o porównywaniu grafów.

Temat: jak porównać bazy

Damian G.:
Potrzebuje narzedzia, które będzie "porównywarką" baz danych. Ma to służyć do wychwycenia warości które występują zarówo w jednej jak i w drugiej bazie danych. Co więcej. W sytuacji kiedy chcę porównać wartości bazy A do warości z bazy B chciałbym mieć dostęp jedynie do wartości które się powtórzą, a nie do wszystkich. Czyli też pewnego rodzju "wyszukiwarka", tyle że inne wyszuje pojedyńczej wartości w bazie danych tylko wrzucam całą bazę danych(A) do "wyszukiwaki" i w wyniku dostaję listę wartości które się powtórzyły.
Ma to służyć do tego zeby klienci mogli porównywać swoje bazy z moją, ale nie mogli do woli przeglądać mojej bazy, a tylko te wartości które się powtarzają.


masz jakies wspolne pole w tych bazach (per tabela oczywiscie) ? no jak tak, to selectem zwyklym. jak sie dostac do bazy to juz sprawa drugorzedna
Piotr K.

Piotr K. QA / Test Engineer
at Luxoft / UBS

Temat: jak porównać bazy

Przychodzą mi do głowy różne rzeczy. Ale tym więcej mało trafnych i ogólnych pomysłów im mniej informacji na temat problemu. Poniżej moje spostrzeżenia, mniej lub bardziej trafne.

1. Musiałbyś znać nazwę kolumny w bazie A i B, która pełniłaby rolę identyfikatora, w oparciu o który mogłoby następować porównanie (np. z wykorzystaniem języka SQL).

Przykładowe zapytanie:

SELECT $id, kolumna1, kolumna2 , ...
FROM tabela A, tabela B
WHERE A.$id = B.$id
;

2. Najprościej by było gdyby istniała jedna baza, w której byłyby umieszczone dwie tabele (A i B), a trzecia (np. C), zawierałaby dane wspólne dla A i B, wtedy wystarczy proste zapytanie select * from C i wyrzuca te same dane. Ale wcześniej, musiałoby być wykonywane dodatkowe zapytanie INSERT, zapełniające tabele C. I tutaj wracamy do punktu 1). I tym samym zdaje się wkraczamy w zagadnienia integracji, synchronizacji oraz normalizacji baz danych :). Ksiązki o tym popisali...

3. Jeżeli to są "bazy" zapisane w różnych systemach baz danych, to sytuacja się trochę komplikuje. Pytanie czy to są w ogóle relacyjne bazy danych, pracujące o architekturę klient/serwer? Bo jeżeli to są na przykład bazy pracujące na lokalnym jakimś "silniczku" np. access czy firebird, to przydałoby się dokonanie konwersji danych do wspólnego formatu (XML? TXT? CSV?). A potem ewentualnie wykorzystanie języków skryptowych (np. awk czy jakiś perl) do ich przetworzenia.

4. Zakładając najbardziej oczywisty wariant (sic!), że to są dwie instancje tej samej bazy danych, na różnych serwerach bądź występujące pod innymi nazwami na tym samym serwerze, to -- nie wdając się w techniczne tego aspekty -- wydaje mi się, że to musiałoby wyglądać mniej więcej tak:

1.1) następuje połączenie z bazą A

1.2) wykonuje się zapytanie:

SELECT $id, kolumna1, kolumna2, ... , kolumnaN
FROM tabela1, tabela2, ... , tabelaN
[w tym miejscu klauzula WHERE lub JOIN, w zależności od konstrukcji tabel, kluczy, oraz tego które i jakie dane potrzebujemy]

1.3) wrzucenie wyniku zapytań do tablicy i ewentualne posortowanie danych.

2.1, 2.2, 2.3) analogicznie to samo co w podpunktach 1.1, 1.2, 1.3 tylko dla bazy B.

3. Porównujemy dwie tablice ze sobą [tutaj się kłaniają algorytmy porównań, np. wspomniane grafy] i listujemy dane które występują w obu tablicach, a które są iloczynem logicznym (ponieważ chcemy te dane, które się powtarzają, które są częścią wspólną).

Do wykonanie powyższego mnie się naturalnie nasuwa PHP i MySQL, ale równie dobrze to może być coś zupełnie innego.

Taka uwaga końcowa: w przypadku utworzenia trzeciaj bazy/tabeli, w celach bezpieczeństwa można nadać użytkownikom uprawnienia tylko do odczytu. No i rozwiązanie z trzecią bazą danych, skutkuje tym, że użytkownik będzie miał wgląd tylko do tych danych (założenie: "chciałbym mieć dostęp jedynie do wartości które się powtórzą" zostanie tym samym spełnione).

Temat: jak porównać bazy

Piotr K.:
1. Musiałbyś znać nazwę kolumny w bazie A i B, która pełniłaby rolę identyfikatora, w oparciu o który mogłoby następować porównanie (np. z wykorzystaniem języka SQL).

Przykładowe zapytanie:

SELECT $id, kolumna1, kolumna2 , ...
FROM tabela A, tabela B
WHERE A.$id = B.$id
;

powinno byc przynajmniej tak - jezeli juz dajesz wprost nazwe kolumny, ktora jest w obu tabelach w zapytaniu

SELECT A.$id, kolumna1, kolumna2 , ...
FROM tabela A, tabela B
WHERE A.$id = B.$id
;

lub tak

SELECT B.$id, kolumna1, kolumna2 , ...
FROM tabela A, tabela B
WHERE A.$id = B.$id
;

i to jest ten zwykly select o czym bylo mowa w poscie wyzej

2. Najprościej by było gdyby istniała jedna baza, w której byłyby umieszczone dwie tabele (A i B), a trzecia (np. C), zawierałaby dane wspólne dla A i B, wtedy wystarczy proste zapytanie select * from C i wyrzuca te same dane. Ale wcześniej, musiałoby być wykonywane dodatkowe zapytanie INSERT,

no wiec po co komplikowac ?

tabela A na ktorej pracuja ludzie
tabela B ktora jest kasowana i zaciagana do bazy co jakis czas - ten etap 'wyszukiwania'
potem select * from t1, t2 where t1.id=t2.id

4. Zakładając najbardziej oczywisty wariant (sic!), że to są dwie instancje tej samej bazy danych, na różnych serwerach bądź występujące pod innymi nazwami na tym samym serwerze, to -- nie wdając się w techniczne tego aspekty -- wydaje mi się, że to musiałoby wyglądać mniej więcej tak:


dblink - przynajmniej w pg

konto usunięte

Temat: jak porównać bazy

Dobrze rozwinę temat. Powstaje projekt, który nie jest tak prosty ja mi się wydawało na początku. Zadanie jest takie, że dwie osoby muszą porównać swoje bazy danych. Są w nich tylko imiona i nazwiska. Problem jest w tym, że to dane poufne i żada ze stron nie może poznać bazy drugiej osoby. Nawet wynik porówania nie może być listą powtórzonych imion i nazwisk. Ma to być wynik ilściowy. Myślałem o tym, aby dostaczyć obu strom ineodwracalny algorytm, tóry nie ma klucza. I porównać kody obu stron.

Czy ktoś ma inne pomysły? Wiem, że sam sobie nie poradzę, liczę na współpracę.

Temat: jak porównać bazy

Damian G.:
prosty ja mi się wydawało na początku. Zadanie jest takie, że dwie osoby muszą porównać swoje bazy danych. Są w nich tylko imiona i nazwiska. Problem jest w tym, że to dane poufne i żada

nic nie rozumiem. no to jaki to jest problem ?
abstrahując od tego, ze Kowalskich Janów mamy setki, ale ok

zrób sobie te bazy (pytanie w czym ?) - ja oczywiście w PG

CREATE TABLE t_foo(imie varchar(100), nazwisko varchar(100));
CREATE TABLE t_bar(imie varchar(100), nazwisko varchar(100));

dodaj dane

test_gl=# INSERT INTO t_foo (imie, nazwisko) values ('Jan','Kowalski');
INSERT 0 1
test_gl=# INSERT INTO t_foo (imie, nazwisko) values ('Donald','Tusk');
INSERT 0 1
test_gl=# INSERT INTO t_bar (imie, nazwisko) values ('Lech','Kaczynski');
INSERT 0 1
test_gl=# INSERT INTO t_bar (imie, nazwisko) values ('Jan','Kowalski');
INSERT 0 1

no a potem porównanie - jakaś prostą stronkę, skrypt ?

jeżeli chcemy wartości unikatowe, to:

test_gl=# select count(*) as ile_wspolnych from (SELECT imie,nazwisko from t_bar group by imie, nazwisko) as b, (SELECT imie,nazwisko from t_foo group by imie, nazwisko) as f where b.imie=f.imie and b.nazwisko=f.nazwisko ;

dlatego takie 'skomplikowane', bo jak będziesz miał 2x tego samego Kowalskiego w jednej tabeli to będzie 'bałagan' - duplikowanie sie rekordow. chyba, ze faktycznie każdy wpis jest celowy i świadomy, wtedy zapytanie może mieć postać bardziej prosta

test_gl=# SELECT count(*) as ile_wspolnych from t_bar, t_foo where t_foo.imie = t_bar.imie and t_foo.nazwisko = t_bar.nazwisko;
strom ineodwracalny algorytm, tóry nie ma klucza. I porównać kody obu stron.

? nie rozumiem nic. może za mało jeszcze dzisiaj kawy wypiłem :)

powodzenia
Damian Kamiński

Damian Kamiński Zamieniam informacje
w wiedzę ...

Temat: jak porównać bazy

Co do sposobu łączenia danych, to wcześniej opisany z WHEREm po imię/nazwisko jest chyba najprostszy i najlepszy. Pytanie jest jak jest ze stopniem dbania o poufność, wiesz jak od siebie jestem w stanie wykonać takie zapytanie z takim warunkiem, to równie dobrze mogę sobie zrobić select * …, i po poufności. Koniec końców co by nie wymyślić, zawsze mogę rozbić swoją bazę 100 klientów, na 100 baz z 1 klientem :> i dostane zero-jedynkowo kogo masz w bazie a kogo nie :> no i znowu poufności brak.

Tak czy inaczej myślę ze osoba która wymyśliła ten projekt nie miała na myśli nic strasznie zawiłego, dlatego ja to bym zrobił po prostu MD5 hash’a z IMIE+NAZWISKO i porównywał hashe.

Względnie poufne i banalnie proste.Damian Kamiński edytował(a) ten post dnia 07.07.07 o godzinie 11:51

konto usunięte

Temat: jak porównać bazy

Damian K.:
Co do sposobu łączenia danych, to wcześniej opisany z WHEREm po imię/nazwisko jest chyba najprostszy i najlepszy. Pytanie jest jak jest ze stopniem dbania o poufność, wiesz jak od siebie jestem w stanie wykonać takie zapytanie z takim warunkiem, to równie dobrze mogę sobie zrobić select * …, i po poufności. Koniec końców co by nie wymyślić, zawsze mogę rozbić swoją bazę 100 klientów, na 100 baz z 1 klientem :> i dostane zero-jedynkowo kogo masz w bazie a kogo nie :> no i znowu poufności brak.

Tak czy inaczej myślę ze osoba która wymyśliła ten projekt nie miała na myśli nic strasznie zawiłego, dlatego ja to bym zrobił po prostu MD5 hash’a z IMIE+NAZWISKO i porównywał hashe.

Względnie poufne i banalnie proste.Damian Kamiński edytował(a) ten post dnia 07.07.07 o godzinie 11:51

Bezpieczeństwo danych jest ważne. I musze to przedstawić w GIODO (http://giodo.gov.pl) Hasze wydają się być dobrym rozwiązaniem, bo nikt nie ma do nich klucza. Jednak jak w GIODO to udowodnić? Czy są jakieś certyfikaty? Ktoś je wydaje?

Temat: jak porównać bazy

Damian K.:
Co do sposobu łączenia danych, to wcześniej opisany z WHEREm po imię/nazwisko jest chyba najprostszy i najlepszy. Pytanie jest jak jest ze stopniem dbania o poufność, wiesz jak od siebie jestem w stanie wykonać takie zapytanie z takim warunkiem, to równie dobrze mogę sobie zrobić select * …, i po poufności.

nie no, to po to wymyślono widoki chociażby :)

'test_gl=> SELECT * from t_foo ;
ERROR: permission denied for relation t_foo
test_gl=> SELECT * from t_bar ;
ERROR: permission denied for relation t_bar
test_gl=> SELECT * from v_ile_wspolnych ;
ile_wspolnych
---------------
2
(1 row)
'

Tak czy inaczej myślę ze osoba która wymyśliła ten projekt nie miała na myśli nic strasznie zawiłego, dlatego ja to bym zrobił po prostu MD5 hash’a z IMIE+NAZWISKO i porównywał hashe.

offcourse, o czymś takim tez pomyślałem jak czytałem o tych kluczach :D no, ale pytanie co miał na myśli autor :)

Temat: jak porównać bazy

Damian G.:
Bezpieczeństwo danych jest ważne. I musze to przedstawić w GIODO (http://giodo.gov.pl) Hasze wydają się być dobrym rozwiązaniem, bo nikt nie ma do nich klucza. Jednak jak w GIODO to udowodnić? Czy są jakieś certyfikaty? Ktoś je wydaje?

nie wiesz co to jest md5, prawda ? :) bez urazy :)

ale można tez zrobić ten projekt 'kluczując' dane. duzo mozna.

to moze faktycznie dać md5 na imie i nazwisko, dac to do dodatkowej kolumny, zeby ciagle tego nie liczyc, na to index i porownywac po tej kolumnie.

giodo nie wiem jak podchodzi do md5 + zabezpieczenie na poziomie bazy - hint: post wczesniejszy

konto usunięte

Temat: jak porównać bazy

nie wiesz co to jest md5, prawda ? :) bez urazy :)

Tyle co z Wikipedii :) To prawda, nigdy wcześniej nie było mi to potrzebe.
ale można tez zrobić ten projekt 'kluczując' dane. duzo mozna.

to moze faktycznie dać md5 na imie i nazwisko, dac to do dodatkowej kolumny, zeby ciagle tego nie liczyc, na to index i porownywac po tej kolumnie.

giodo nie wiem jak podchodzi do md5 + zabezpieczenie na poziomie bazy - hint: post wczesniejszy

Dla GIODO ważne jest aby tych dannych nie odkodować. Jeśli nikt tego nie potrafi bo nie ma klucza to to już nie jest baza danych osobistych tylko nic nieznaczący ciąg znaków. Tyle dowiedziałem się po telefonie do GIODO. Co do md5 to zadzwonię do nich jeszcze w poniedziałek.

Temat: jak porównać bazy

Damian G.:
nie wiesz co to jest md5, prawda ? :) bez urazy :)

Tyle co z Wikipedii :) To prawda, nigdy wcześniej nie było mi to potrzebe.


to taka funkcja jednokierunkowa, którą nie da sie policzyć 'do tylu' - odtworzyć danych wejściowych

a obrazowo ja tłumacze, ze to jest suma wartości. a jak wiadomo, nie za bardzo sie da sumę podzielić potem na dwa składniki - czytaj

suma: 1+5 -> 6

mając '6' nie wiesz, czy to było
1+5
2+4
3+3
1+1+1+1+1+1
-100+106

tylko chodzi o zasadę, ze __nie da sie__ z wyniku sumy md5 wyliczyć z czego ona została policzona. just

dodatkowo, ten algorytm jest tak skonstruowany, ze jest bardzo czuły na zmiany

echo 'foo.com' | md5sum
c6edb4fd9552438098c2ccfdc2e8f272 -

echo 'Foo.com' | md5sum
a75c5f911f14b90d57bec867ddc99618 -

i nie da rady odgadnąć z czego powstało 'c6edb4fd9552438098c2ccfdc2e8f272'

hint: sha1 - krok dalej
Dla GIODO ważne jest aby tych dannych nie odkodować. Jeśli nikt tego nie potrafi bo nie ma klucza to to już nie jest baza danych osobistych tylko nic nieznaczący ciąg znaków. Tyle dowiedziałem się po telefonie do GIODO. Co do md5 to zadzwonię

no właśnie, pewnie giodo potraktuje to jako szyfrowanie. zresztą nie wiem

a tak naprawdę to nie ułatwiło to projektu, bo dane (imie i nazwisko) chyba i tak będziesz musiał trzymać dla każdej bazy osobno (?? - bo nie wiem), a porównywanie można zrobić bezpiecznie bez korzystania z md5

pzd

konto usunięte

Temat: jak porównać bazy

Sylwester M.:
Damian G.:
nie wiesz co to jest md5, prawda ? :) bez urazy :)

Tyle co z Wikipedii :) To prawda, nigdy wcześniej nie było mi to potrzebe.


to taka funkcja jednokierunkowa, którą nie da sie policzyć 'do tylu' - odtworzyć danych wejściowych

a obrazowo ja tłumacze, ze to jest suma wartości. a jak wiadomo, nie za bardzo sie da sumę podzielić potem na dwa składniki - czytaj

suma: 1+5 -> 6

mając '6' nie wiesz, czy to było
1+5
2+4
3+3
1+1+1+1+1+1
-100+106

tylko chodzi o zasadę, ze __nie da sie__ z wyniku sumy md5 wyliczyć z czego ona została policzona. just

dodatkowo, ten algorytm jest tak skonstruowany, ze jest bardzo czuły na zmiany

echo 'foo.com' | md5sum
c6edb4fd9552438098c2ccfdc2e8f272 -

echo 'Foo.com' | md5sum
a75c5f911f14b90d57bec867ddc99618 -

i nie da rady odgadnąć z czego powstało 'c6edb4fd9552438098c2ccfdc2e8f272'

hint: sha1 - krok dalej
Dla GIODO ważne jest aby tych dannych nie odkodować. Jeśli nikt tego nie potrafi bo nie ma klucza to to już nie jest baza danych osobistych tylko nic nieznaczący ciąg znaków. Tyle dowiedziałem się po telefonie do GIODO. Co do md5 to zadzwonię

no właśnie, pewnie giodo potraktuje to jako szyfrowanie. zresztą nie wiem

a tak naprawdę to nie ułatwiło to projektu, bo dane (imie i nazwisko) chyba i tak będziesz musiał trzymać dla każdej bazy osobno (?? - bo nie wiem), a porównywanie można zrobić bezpiecznie bez korzystania z md5

pzd

Sęk w tym, że ja nie mogę poznać, żadnych imion i nazwisk.

Temat: jak porównać bazy

Damian G.:
Sęk w tym, że ja nie mogę poznać, żadnych imion i nazwisk.

i ?

przeciez to juz bylo. nie poznasz nawet jakbys bardzo chcial.

'test_gl=> SELECT * from t_foo ;
ERROR: permission denied for relation t_foo
test_gl=> SELECT * from t_bar ;
ERROR: permission denied for relation t_bar
test_gl=> SELECT * from v_ile_wspolnych ;
ile_wspolnych
---------------
2
(1 row)
'

zreszta nie wiem. nie znam projektu. masz przynajmiej juz 2 rozwiazania. mam w glowie jeszcze 3. ale to tak mozna mnozyc to dalej

moze zrob sobie baze i niech ludzie pracuja - rozumiem ta baza i tak musi byc zarejetrowana w giodo. btw: imie i nazwisko chyba jeszcze nie musi byc rejestrowane.
a dla sobie do porownan exportuj tylko sumy md5. czyli to co dostaniesz do porownania bedzie skladalo sie tylko z sum. czyli 'zabezpiecznie' bedzie na etapie exportu/dumpa. powstanie 'twor' (plik z exportem), nie nadajacy sie do niczego poza ew jego porownaniem z jakims innym md5

pzd
Krzysztof O.

Krzysztof O. Different Media -
planowanie i zakup
mediów

Temat: jak porównać bazy

rainbow tables :) przegogluj termin jesli nadal wierzysz w hasze.
Damian G.:
Damian K.:
Co do sposobu łączenia danych, to wcześniej opisany z WHEREm po imię/nazwisko jest chyba najprostszy i najlepszy. Pytanie jest jak jest ze stopniem dbania o poufność, wiesz jak od siebie jestem w stanie wykonać takie zapytanie z takim warunkiem, to równie dobrze mogę sobie zrobić select * …, i po poufności. Koniec końców co by nie wymyślić, zawsze mogę rozbić swoją bazę 100 klientów, na 100 baz z 1 klientem :> i dostane zero-jedynkowo kogo masz w bazie a kogo nie :> no i znowu poufności brak.

Tak czy inaczej myślę ze osoba która wymyśliła ten projekt nie miała na myśli nic strasznie zawiłego, dlatego ja to bym zrobił po prostu MD5 hash’a z IMIE+NAZWISKO i porównywał hashe.

Względnie poufne i banalnie proste.Damian Kamiński edytował(a) ten post dnia 07.07.07 o godzinie 11:51

Bezpieczeństwo danych jest ważne. I musze to przedstawić w GIODO (http://giodo.gov.pl) Hasze wydają się być dobrym rozwiązaniem, bo nikt nie ma do nich klucza. Jednak jak w GIODO to udowodnić? Czy są jakieś certyfikaty? Ktoś je wydaje?
Jakub L.

Jakub L. Programista

Temat: jak porównać bazy

Krzysztof O.:
rainbow tables :) przegogluj termin jesli nadal wierzysz w hasze.

Po polsku to atak słownikowy :)
Imion i nazwisk nie jest dużo, jak ktoś się uprze, zrobi słownik haszy konkatenacji imienia i nazwiska.
Jeżeli do tej konkatenacji dodasz PESEL (co moze być całkiem do rzeczy jeżeli porównujemy dane osobowe), to wielkość słownika rośnie drastycznie.
Zastanawiam się natomiast, kiedy jest szansa na konflikt haszy, minimalizacja tej szansy to użycie równoległe md5 i sha zmniejsza taką szansę.
Michal Oczak

Michal Oczak sysadmin/webdev

Temat: jak porównać bazy

albo uzycie ktoregos z sha2

Temat: jak porównać bazy

Krzysztof O.:
rainbow tables :) przegogluj termin jesli nadal wierzysz w hasze.

jasne :) czyli zabezpieczając swoje mieszkanie, montujesz:
10 gert, każda inna
5 alarmów
ochrona, najlepiej w 3 różnych firmach ochroniarskich
w oknach kraty koniecznie tez. najlepiej blacha, co ma ktoś podglądać

a wszystko dlatego, żeby nikt nie ukradł Twojego kochanego pluszowego misia, który sobie smacznie śpi ? :P :)

trochę równowagi :) podejrzewam, ze projekt nie jest super hiper tajny :) i kluczowy dla obronnictwa Państwa Polskiego. co nie zmienia faktu, ze gdybym robił jakiś projekt jak to, to bym korzystał z sha1 - sam zmieniałem z md5 na sha1 jak okazało się, że całkiem realne są juz kolizje dla md5. jeszcze jak nvidia wypuściła te swoje akceleratory... no to juz będzie niedługo kicha. wiec sha1 przynajmniej. tylko czy do porównania imion i nazwisko wyciągać armatę ? :)

a sha2 jakoś mi umknęło... trzeba doczytać :)

p.s.
:) hmm, ? sha2, marketing :> sha256 itd

>>> import hashlib
>>> m = hashlib.md5()
>>> m.update('ala ma kota')
>>> print m.hexdigest()
e2c3275d0e1a4bc0da360dd225d74a43
>>> m = hashlib.sha1()
>>> m.update('ala ma kota')
>>> print m.hexdigest()
e30daf82b36808e1d52adf23eca0511a441b451f
>>> m = hashlib.sha224()
>>> m.update('ala ma kota')
>>> print m.hexdigest()
58b54cb369261f7fb46b18569e6b19f7deb98ccf9e4b256c2ad229b3
>>> m = hashlib.sha512()
>>> m.update('ala ma kota')
>>> print m.hexdigest()
6b0baf70d57d272cd7b73e6744e4f5efcb05c62372e946555a0763d64d2e676dfcf89011f18a9c74b8fd876390a48bf8c6c06aded2e01b13a6377d744bf0b9a6

wow :)

p.s.
wyszedł przydługi post. sorry
Michal Oczak

Michal Oczak sysadmin/webdev

Temat: jak porównać bazy

nie marketing, tak sa nazwane ogolnie SHA-224, SHA-256, SHA-384, SHA-512, wszystkie uwazane za bezpieczne, pgcrypto ma dla nich support, dla SHA-1 podobnie jak dla MD5 zostala udowodniona podatnasc na ataki, dla SHA-2 jeszcze nie



Wyślij zaproszenie do