Вы говорите, что ваша единственная проблема - человек посередине, модифицирующий javascript, который вы используете для выполнения SHA1. Поэтому я предполагаю, что вы используете логин + пароль SHA1 для входа в систему ....
Это совершенно небезопасно даже без вмешательства в Javascript. Даже если человек посередине может не знать простой пароль, если javascript не изменен, он будет знать хеш, и он может прекрасно использовать этот хеш для самостоятельного входа в систему, просто воспроизведя его.
Даже если вы включите соль / одноразовый номер, человек посередине все еще сможет использовать эти токены в данный момент и даже украсть учетную запись, выполнив изменение пароля / электронной почты.
Даже игнорируя это и предполагая, что вы действительно можете обойти все это + на самом деле получить javascript для проверки целостности второго javascript, как бы вы предотвратили подделку этого «сценария проверки»? Вы по-прежнему зависите от сценария, отправляемого по незащищенному каналу, для обеспечения безопасности таких данных (и вы можете рекурсивно продолжать использовать сценарий, проверяющий целостность сценария, проверяющего целостность сценария ...), и все они будут полностью подделаны так как они отправляются по незащищенному каналу.
Единственный способ сделать это - это создать собственный защищенный канал поверх http, для чего потребуются некоторые дополнительные функции на стороне клиента (плагин Firefox / расширение ActiveX), но при этом будет иметь встроенную поддержку https, просто абсурд.