Cayley Graphs of Semigroups and Applications to Hashing