Если вы выполняете проверку на стороне клиента, вы хотите использовать асимметричное шифрование. Таким образом, вам не нужно раздавать закрытый ключ клиенту. Я бы сгенерировал подпись RSA, используя SHA-256 и 2048-битный ключ. Если вы сделаете это, криптографические операции не будут слабым звеном. Взломщик может, конечно, изменить код, чтобы пропустить этап проверки, но никакой криптографический алгоритм не поможет этому.
Если вы выполняете проверку на стороне сервера, я бы выбрал HMAC на основе SHA-256.