Veramente le specifiche dell'algoritmo md5 sono pubbliche, così come le spcifiche del maggiori algoritmi di cifratura, la robustezza di tali algoritmi non è data dal nascondere la loro implementazione ma dalla teoria che c'è dietro.
Per cifrare è andare sul sicurissimo non è necessario nascondere l'implementazione, basta usare un'algoritmo robusto ad esempio rsa, potente e versatile, funziona sia con chiave pubblica/privata sia con chiave simmetrica.
Prova a partire da qui