Для проверки целостности данных часто применяют цифровую подпись, например на основе алгоритма RSA. Подпись реализуется путем зашифрования значения хэш-функции от защищаемых данных на секретном ключе RSA. Для проверки целостности необходимо снова вычислить значение хэш-функции от тех же данных, а потом сравнить его со значением, расшифрованным открытым ключом RSA. Если при подписи используется плохая хэш-функция, то возможно подделать подписанные данные, не взламывая RSA.
Подпись файла данных в Hardwood Solitaire II Программа Hardwood Solitaire II, разработанная компанией Silver Creek Entertainment, сочетает в себе несколько десятков карточных пасьянсов в велико- лепном графическом исполнении. Для защиты основного файла данных от внесения изменений используется цифровая подпись на основе RSA по описанной выше схеме. Однако для вычисления хэша по непонятным причинам была выбрана функция Adler32, предназначенная для вычисления 32-битовой контрольной суммы. Но при использовании Adler32 добавлением максимум 260 байт к любым данным можно добиться того, чтобы результат вычисления контрольной суммы оказался равен любому заданному значению. Таким образом, можно в файл данных внести любые изменения, а затем дополнить этот файл таким образом; чтобы вычисление Adler32 от него выдавало тот же результат, что и от оригинального файла. При этом цифровая подпись не будет разрушена.