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: 
You **can** try to stop the program from running if it's been tampered with, for example by comparing its (md5) hash to a known good value. Check out the Chrome OS project for an example of a system which does roughly this.

You **can** try to stop the user from understanding your program and data written to the disk, for example by encrypting it and hiding the decryption subroutine, or by obfuscating the source code.

But you can't stop a determined user from destroying your program and its data or from interrupting it. Once your program is in the air, I think its memory segment is protected from access by other processes. This doesn't stop a user from decompiling and trying to make sense of your program before running it, though.

Security which aims to protect software from its owner is bound to rely on clever hacks. Remeber that your clever hacks are subject to circumvention by other clever hacks. Python was designed as an open language, so you might have better luck with other languages if you intend to design "sneaky" programs.
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