Самая большая проблема, конечно, в том, что вам нужно знать сообщение, чтобы расшифровать его.
Есть ли какая-либо непосредственная слабость (при условии, что сообщения, которые я отправляю, не являются предварительно консервированными)?
Предварительно консервированный - слишком расплывчатый термин. Если злоумышленник каким-либо образом сможет угадать открытый текст, то ключ станет известен. Безопасность AES будет снижена, если энтропия в сообщении будет ниже размера ключа.
Обратите внимание, что предполагается, что злоумышленник знает используемую хеш-функцию (принцип Керкхоффа), поэтому никакой безопасности от этого не добиться.
Достаточно ли одноразового номера, чтобы преодолеть любую слабость при использовании AES?
AES не использует одноразовый номер. Криптографические схемы и режимы операций блочного шифрования, такие как GCM, могут использовать одноразовый номер. Однако одноразовый номер не устраняет никаких других уязвимостей схемы или режима работы. Наличие одноразового номера может быть предварительным условием для конкретной схемы или режима работы, но это все.
Если не использовать одноразовый номер, он все еще жизнеспособен?
Нет, это не очень хорошая идея.
Возможно, вам следует вместо этого взглянуть на функции получения ключей на основе пароля (функции PBKDF, также известные как хэши паролей). Они обеспечивают полезные вещи, такие как соль и коэффициент работы / количество итераций. Соль, вероятно, является тем видом неиспользования, который вы ищете, а фактор работы затрудняет угадывание сообщения.