Question: I need help storing data within a python program. I don't want the user to be able to touch the data at all. I've looked into pickle but many posts say it is "insecure".

Answer: 
If the user will be running your program on his machine you just can't hide the data.

The user running the program can access everything the program can, is just a matter of knowing where to look.

If you are dealing with end-users then just encrypt the data and decrypt it at the last point before using it. Just keep in mind that, at some point, the data has to be decrypted on memory and then the user could see it.
Do you mean within as in within memory, and not on disk? A really simple solution to storing data in memory and making it easily accessible throughout the program would be to make a python file containing a dictionary in your program's root directory.

for example, py/storage.py would contain:

```
data = {}

```

Then you could write to it like so:

```
import storage
storage.data['foo'] = 'bar'

```

and then read the same value in another file like this:

```
import storage
foo = storage.data['foo']

```

The data in the storage module will be accessible to all other modules within the program, but will be erased when the program exits. The user will not be able to touch it without modifying the program. If you need something more database related, sqlite allows you to create databases in memory that only stay in memory as long as the program is running