Question: Each physical user will have about 20 tables in the database.

When a new user registers, another 20 tables will be created with access only for their new MySQL account.

Data does not have to be shared between users.

Is this logic more secure than simply having just 20 tables for all the users?
And what about performance will be dead or not ?

**EDIT**

I just want to be sure that a user who likes to "play" with injections and finds a way around will not be able to access other user data.

Answer: 
Hash functions are [deterministic](http://en.wikipedia.org/wiki/Deterministic_algorithm): same input yields the same output. Any implementation of a given hash function, regardless of the language it is implemented in, must act the same.

*However*, note that hash functions take *sequences of bits* as input. When we "hash a string", we actually convert a sequence of characters into a sequence of bits, and then hash it. There begins the trouble. Consider the string `"café"`: among all the possible conversions to bits, all of the following are common:

```
63 61 66 e9                             ISO-8859-1 ("latin-1")
63 61 66 ca a9                          UTF-8
63 61 66 65 cc 81                       UTF-8 (NFD)
ef bb bf 63 61 66 ca a9                 UTF-8 (with BOM)
ef bb bf 63 61 66 65 cc 81              UTF-8 (NFD with BOM)
63 00 61 00 66 00 e9 00                 UTF-16 little-endian
00 63 00 61 00 66 00 e9                 UTF-16 big-endian
ff fe 63 00 61 00 66 00 e9 00           UTF-16 little-endian (with BOM)
fe ff 00 63 00 61 00 66 00 e9           UTF-16 big-endian (with BOM)
63 00 61 00 66 00 65 00 01 03           UTF-16 little-endian (NFD)
00 63 00 61 00 66 00 65 03 01           UTF-16 big-endian (NFD)
ff fe 63 00 61 00 66 00 65 00 01 03     UTF-16 little-endian (NFD with BOM)
fe ff 00 63 00 61 00 66 00 65 03 01     UTF-16 big-endian (NFD with BOM)

```

and all will yield very different hash values when processed with a given hash function. You have to be very precise about what you do when dealing with cryptographic functions; every bit counts.
I'm not exactly sure what you mean, but yes. The output of a properly written hash function should be the same regardless of language.

The only difference between the hashes of different programming languages libraries and on different platforms will be speed. Although in properly written libraries - the difference will be trivial.