sha1 vai md5 neatkodēsi.
A par refrešu - nu stulbs, bet vienkāršs variants - saglabā nosūtītos datus kautkur, un ja vēlreiz pienāk tādi paši, tad zini, ka lietotājs ar diezgan lielu varbūtību ir nospiedies F5.
Gudrāks variants - pēc POST datu apstrādes redirektē (ar Location) lietotāju uz kādu citu skriptu (kautvai to pašu, bet lai parametri GET urlī atšķirās), tādējādi, ja tiks spiests F5, tad netiks pārlādēts tas POST pieprasījums, bet gan tā jaunā lapa.