Немного неясно, какова ваша конечная цель, но реализация SHA, на которую вы ссылались, должна быть в состоянии выполнить желаемое хэширование.Одно из значений «хеширования чего-либо с помощью ключа» для аутентификации сообщений может заключаться в том, что вы берете секретный ключ и добавляете его к данным, а затем хешируете весь результат.Всегда полезная Википедия имеет некоторую информацию о HMAC .
Обратите внимание, что хеширование не является шифрованием.Вопрос, по-видимому, подразумевает, что хеширование чего-либо аналогично шифрованию.Хеш, однако, берет некоторые данные и пропускает их через блендер данных и создает (как правило) кусок данных фиксированной длины.С криптографически сильной хеш-функцией предполагается, что невозможно (с практической точки зрения) найти вход, который приводит к заданному хеш-значению.Шифрование, с другой стороны, берет ключ и порцию данных и проходит через блендер данных и генерирует порцию данных, которую затем можно «объединить» вместе с исходным ключом для получения исходных данных.