No sha2 można do hashowania haseł użyć, no widzę pascal dołączył do nowoczesnych języków, mam nadzieję, że błędów nie zrobili, bo algorytmy hashujące są trudne do zrozumienia.
Co to znaczy „widzę pascal dołączył do nowoczesnych języków”? Ta biblioteka ma 5 lat, a są jeszcze inne, nawet znacznie starsze, więc gratuluję spostrzegawczości. W ogóle ten akapit to jakiś WTF, wypełniony uprzedzeniami i deprecjonujący Delphi/Pascala.
Anyway jakby ktoś chciał zrozumieć jak zrobić jakąkolwiek funkcję hashującą lub algorytm to polecam sprawdzić jak to jest zrobione w arduino bez zbędnych fabryk class i innych pierduł tylko czysty kod.
Zaznaczę przy okazji, żeby kogoś nie podkusiło implementować takich funkcji samodzielnie. Właśnie dlatego — jak w pierwszym akapicie cytowanego posta zauważył autor — że są skomplikowane. Nie po to ktoś odwalił całą robotę za nas, aby wymyślać koła na nowo. Jeśli ktoś nie lubi klas i pierdÓł, to może sobie kod z pascalowej biblioteki skopiować do zwykłej funkcji.
W tym przypadku warto to zrobić, bo wywołania pokroju tego:
THashFactory.TCrypto.CreateSHA1().ComputeString(Edit1.Text, TEncoding.UTF8).ToString();
to jakiś turbo-WTF składniowy. Nie rozumiem jak można wziąć tak prosty mechanizm jakim jest funkcja, i do tego stopnia sp******ić jego obsługę. No ale rozumiem, że dla geniuszy OOP funkcja nazywająca się np. CreateHashSHA1
(albo CreateHashSHA1FromString
) jest bezużyteczna, nic nie mówi o tym co robi i nie da się jej używać. :D