No. Questa classe HashUtils NON può essere "top level". Dovrebbe essere contenuta dentro un'altra classe. E se lo fosse, l'unica cosa (ripeto l'unica) che cambierebbe è a livello di naming, cioè di qualificazione del nome:
String ciphredPwd = ClasseTopLevel.HashUtils.getMd5(pwd);
Ti ripeto che il concetto del pattern "singleton" non c'entra nulla con la differenza tra una classe "top level" e una "nested" (static).