I know that motivated people can generally crack encrypted saves, but in general, if I have some saved dictionaries which I don’t want the player to be able to access directly, is an encrypted save the best way to handle this, or is there a better way?
That’s a good question and obviously the answer is “it depends”.
The main point we need to clarify here is what are you trying to prevent? If you want to prevent the player from accessing inventory or levels that should be unlocked later in the game and the game is Singleplayer not competitive in any way… Maybe keep your game open to be modified? I think people can decide on their own how they want to play those games. See legendary Atari code for example. However encrypting config files that hold those data should be enough for such cases if you really want to prevent the player from doing this.
If you want something like additional skins or bonus levels that can be unlocked for money encrypting files that control this in you game could be a start. But like you already said everything that is shipped to the user can be cracked and decompiled. So if you take this really serious you should maybe come up with a Server System that hold the information about what a player has unlocked and what not. But this would be quiet some work with running server cost etc. so unless you try to do the next Fortnite or Fallguys this is maybe overkill.
Last of all if you worried about cheating in multiplayer like one player editing it’s healthy or position than encryption should not be the way to go instead you should definitely implemented a client server structur in which the server hold all the critical information about all clients and client are more or less “just” taking input from the player and sending it to the server.