Я знаю, что это технически не является ответом на ваш вопрос программирования, но я, честно говоря, думаю, что наиболее ценный совет, который я могу вам дать, это то, что вы должны использовать широко используемый и хорошо проверенный алгоритм MD5 (или любой другой крипто), НЕ катите свои собственные. Как я могу выразить это деликатно ... этот совет вдвойне верен, если вы задаете вопросы о целочисленной математике. Дорога в ад усеяна телами людей, которые пытались внедрить хитрую криптографию самостоятельно, не полностью понимая, что они делают, и в итоге оставили в процессе зияющие дыры в безопасности. Будьте умны, используйте отлаженную реализацию кого-то другого, используйте свое драгоценное время для реализации тех частей системы, которые вы не можете получить из другого места.