Защищать данные локально можно только средствами ОС (например права доступа, запускать приложение от прав соответствующего пользователя), это достаточно успешно реализовано на android/macos, для получения доступа к данным там понадобится рут/взлом загрузчика, что сразу уменьшает список таких пользователей на пару порядков
Полностью защитить локальные данные от получения к ним доступа невозможно, можно только усложнить - увеличить стоимость взлома (например обфускация алгоритмов и ключей шифрования критичных данных) и делать это лучше не на python (инструменты обфускации заточены обычно на c/c++)