Preciso che le funzioni di hash, come MD4, non c'entrano con l'encryption. Se vuoi cifrare qualcosa devi avere un messaggio e una password, poi ottieni un altro messaggio (il messaggio cifrato) che potrai decifrare usando la password. Nella funzioni di hash non c'è nessuna password: prendi un messaggio e ottini in output un altro messaggio (chiamato digest) e, a meno di fragilità nel sistema, non puoi recuparere il messaggio originale a partire dal digest. Gli hash non si decriptano perché non c'è niente da decriptare. Probabilmente tu sei interessato a trovare una collisione, ovvero trovare un qualsiasi messaggio che ti butta fuori lo stesso digest.
Non ho capito.invece quello che serve a me è l'algoritmo usato da windows per salvare le password
Basta cercare "MD4 implementation" o "MD4 source" su google e ne trovi diverse. È presente in rosettacode e c'è anche un'implementazione nel kernel Linux (man page). Quella che hai linkato tu viene da rosettacode e direi che va bene. Se stai usando Linux usa direttamente quella presente nel sistema operativo.nel frattempo ne ho trovato uno online dopo molta ricerca, ma a questo punto non so piu se è quello giusto