Предыдущие ответы указывают на то, как делать то, что вы просили.
Я хотел бы добавить слово о том, почему вам, вероятно, не стоит этого делать.
То, что вы говорите, называется «симметричное шифрование» (тот же ключ используется для шифрования и дешифрования, в отличие от асимметричного шифрования, где все, зашифрованные одним ключом, могут быть дешифрованы только конкретным экземпляром).
Демонтаж исполняемого файла для определения используемого жесткокодаемого ключа является следующим-тривиальным. Это означает, что любой, кто получает свои руки от одного из ваших исполняемых файлов, может сломать шифрование любого сообщения, когда-либо обмениваемого.
Если приложение, которое вы имеете в виду, очень специфично, это означает, что ваша установка может «выглядеть» безопасно, но это не так. В этих случаях обычно лучше не шифровать вообще, так что никто не участвует в этом ложном чувстве безопасности ...
Очень хорошо, что вы ищете стандартные библиотеки для шифрования (вместо реализации/создание алгоритма самостоятельно), но protocoll (как приложения, ключи и сообщения используются и обмениваются) по меньшей мере так же важны, как и сам шифр. Возможно, вы захотите, чтобы ваши идеи были проверены кем-то, кто занимался криптографией, чтобы рассказать вам о слабых сторонах. (Я уверен, что такого достаточно здесь, в StackOverflow. ;-))
Вопрос с похожим примером http://stackoverflow.com/questions/3141860/aes-ctr-256-encryption-mode-of- operation-on-openssl – enthusiasticgeek
Вы должны использовать 'EVP_ *' функции. В функциях 'EVP_ *' используется аппаратное обеспечение, например AES-NI (если доступно). См. [Симметричное шифрование и дешифрование EVP] (https://wiki.openssl.org/index.php/EVP_Symmetric_Encryption_and_Decryption) в вики OpenSSL.Фактически, вы, вероятно, должны использовать аутентифицированное шифрование, поскольку оно обеспечивает * и * конфиденциальность и аутентичность. См. [EVP Authenticated Encryption and Decryption] (https://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption) в вики OpenSSL. – jww