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