А сравнение например если len и hash совпадает, то строки равны
Не надо так делать! Вот описание timing attack, рекомендую почитать. Только пример «хорошей» функции сравнения там дерьмовенький, вместо этого можно посмотреть корректный тут (пример на C, даже Eddy_Em должен понять!)