Это невозможно. Вы используете BETWEEN 'value1' AND 'value2'
. База данных может видеть только строки XORed, и BETWEEN
не будет работать должным образом. Даже если вы найдете способ расшифровать строки на лету с помощью SQLITE (помните, что вызов XOR снова расшифрует), это не очень эффективно и требует много ресурсов, когда есть тысячи записей.
Таким образом, чтобы продолжить решение вашей проблемы, вы можете взглянуть на этот список расширений. Кажется, что SQLITE предоставляет некоторые очень простые модули шифрования, которые могут XOR всей базы данных с указанным вами ключом. (не рекомендуется)
В этом файле описывается расширение шифрования SQLite (SEE) для SQLite.
SEE позволяет SQLite читать и записывать зашифрованные файлы базы данных. Все
содержимое базы данных, включая метаданные, зашифровано так, чтобы
посторонний наблюдатель, база данных кажется белым шумом.
Этот файл содержит полный исходный код варианта SEE, который
делает слабое шифрование XOR. Не принимайте этот файл всерьез. Это для
только в демонстрационных целях. XOR-шифрование настолько слабое, что вряд ли
квалифицируется как «шифрование».
Способ, которым вы хотите это сделать, не сработает, если вы не прочитаете все значения столбца в своей программе Qt, расшифруете их и проверьте, является ли VALUE X между A и B.