Możesz spróbować sposobu zasugerowanego w linku na stackoverflow i rozwiąze to Twój problem :)
Możliwe, jednak że:
a) cała baza jest zaszyfrowana
b) ruch między klientem a serwerem jest szyfrowany ---> Wireshark prawdę powie, albo będą leciały selecty albo krzaki
c) na kliencie wprowadzone hasło jest zamieniane na hasha, który leci do serwera, biblioteka po stronie serwera łączy się do postgresa za pomocą jakiegoś dedykowanego odwija go do oryginalnego hasha z hasłem zapisanym na serwerze (biblioteka custom na serwerze może łączyć się z wykorzystaniem jakiegoś dedykowanego konta i porównywać te hashe otrzymane z hashami zapisanymi gdzieś w bazie, w ten sposób hasło znane jest tylko klientowi)
Jeśli interesują Cię analiza szyfrowania hasła, to proponuję zobaczyć jak zamieniane są hasła na te password=0102... w connection stringu. Używając jakiegoś fake usera, na wypadek gdyby N nieudanych logowań skutkowało blokowaniem konta.
a) User1: haslo=A -> co leci w connction stringu
b) User1: haslo=A -> co leci w connction stringu (czy to samo haslo za drugim razem daje ten sam connection string, czy może jest coś innego pod uwagę brane )
c) User1: haslo=a -> co leci w connction stringu (czy to samo co dla haslo=A -> case (in)sensitive)
d) User2: haslo=A -> czy leci to samo o u usera1 (w ten sposób będzie wiadomo, czy to hasło jest mapowane w jakis głupi sposób przez prostą funkcję, czy jednak nie)
e) Jeśli a) i d) dają to samo, to budujemy sobie do dalszej analizy mapkę: A..Z -> pass1..passN, a..z -> passX..passY, 0..9 znaki specjalne etc.
Alternatywne pomysły:
- skopiować pliki data postgres (przy zatrzymanym postgresie) do innej lokalizacji (maszyny, virtualki, tak żeby nie zepsuć bieżącej bazy) i uruchomić "czystego" postgresa w analogicznej wersji co ten użyty w programie, wskazać temu postgresowi katalog data i może podniesie i dalej tak jak abrakadaber sugerował