То, что вы хотите сделать, это на самом деле называется «подписание» в мире криптографии. Вы шифруете что-то своим личным ключом, но поскольку открытый ключ является общедоступным, любой может его расшифровать. Алгоритмы, которые это делают, называются «асимметричными шифрами» (поскольку ключ шифрования отличается от ключа дешифрования).
Как правило, вычисляется криптографически безопасный хэш данных, и только этот хеш подписан. Это экономит вычислительные усилия на шифрование всего сообщения и делает сообщение по-прежнему читаемым в виде четкого текста, который может быть полезен.
Чтобы быть конкретным, алгоритм RSA будет делать то, что вы хотите безопасным способом.
Сделайте себе одолжение и не пытайтесь осуществить это самостоятельно; скорее, возьмем существующую реализацию, такую как библиотека OpenSSL. Он имеет лицензию в стиле Apache, поэтому вам, вероятно, разрешено использовать ее в своем приложении.
(Тем не менее, отметим, что такая система лицензирования никогда полностью безопасно: кто-то еще может изменить свой исполняемый файл и удалите флажок Но ясно, что это больше усилий, чем, скажем, просто изменив значение реестра.).
Нет, для подписей вы шифруете конфиденциально и расшифровываете их публично. – 2008-09-17 02:05:39