Нам не хватает контекста относительно того, почему вам нужно подписать его. Вам может не понадобиться.
Важный вопрос: какие гарантии вам нужны от ваших данных?
Если все, что вам нужно сделать, это проверить целостность данных, то хеш выполнит эту работу. Если вам нужно проверить, откуда он, вы должны подписать его. Если вам нужны оба, хешируйте их, объедините полезные данные с хешем и подпишите все это.
Что касается кроссплатформенных библиотек ... вам действительно нужно беспокоиться об этом. SHA1 - это SHA1 - это SHA1, независимо от того, какая библиотека его сгенерировала. То же самое с генерацией и проверкой цифровых подписей. Используйте то, что проще всего в PHP, и то, что проще всего в C #. Если они оба настроены правильно, вам не нужно беспокоиться об этом.