Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
jozzzzep authored Dec 19, 2020
1 parent 7f0d173 commit 685ef06
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,23 @@
# EncTypes
![img](https://i.imgur.com/F2fxgOn.png)

**A group of classes and structures for storing values while efficiently keeping it encrypted in the memory.**
**In memory, they are saved as a "weird" value that is affected by random values (encryption keys).**
**A group of classes and structures for storing values while efficiently keeping them encrypted in the memory.**
**In memory, they are saved as a "weird" array of bytes that is affected by random values (encryption keys).**
**You can find all the EncTypes in [this](https://github.com/JosepeDev/Variable-Encryption/tree/main/EncTypes) folder. You can also use the**
**[benchmark](https://github.com/JosepeDev/Variable-Encryption/wiki/VarEnc's-Benchmark) executable file, to speed test each type.**
**[benchmark](https://github.com/JosepeDev/VarEnc/tree/main/Benchmark) executable file, to speed test each type.**

Let's say you want to create a variable for a score inside a video game.
With a simple program like CheatEngine and many more, anyone can edit the value of this variable.
This is when you want to use an EncType. Each type does not depend on the other.
This is when you want to use an EncType. Each type does not depend on the other, so you can copy only the types you need.

## Which type to use?

- **EncInt** - For storing an int. Every time you change its value, the random numbers that affect its value change too.
- **EncInt** - For storing an int. Every time you change its value, the random encryption keys that affect its value change too.
- **EncLong** - The same thing as the struct above, but for a 64-bit integer (a long).
- **EncFloat** - The same thing as the struct above, but for a Single (float).
- **EncDouble** - The same thing as the struct above, but for a Double.
- **EncDecimal** - The same thing as the struct above, but for a Decimal.
- **EncString** - An EncType class for a string type, that uses an XOR bitwise encryption.
- **EncString** - An EncType class for a string type.

You can find the EncTypes folder [here](https://github.com/JosepeDev/Variable-Encryption/tree/main/EncTypes)

Expand Down Expand Up @@ -94,6 +94,7 @@ encryptedString += "more text";
**But in the background it is encrypted.**
**Without you worrying about encryption or decryption, you work with your variables just the same.**
**You can also combine and/or compare an EncType with its normal type and vice versa.**
**Every EncType has every method its normal version has.**

# Benchmark
![img](https://i.imgur.com/C8YKbnd.png)
Expand All @@ -113,7 +114,7 @@ After the benchmark is finished, the results will be printed. From there you can

### Performance

I ran a few benchmarks on my Laptop (Intel Core i7-8750h, GTX1060-MaxQ), and these are the results:
I ran a few benchmarks on my Laptop (Intel Core **i7-8750h**, **GTX1060-MaxQ**), and these are the results:
| Variable Type | CPS (Changes per second) |
|---------------|--------------------------|
| EncInt | 5,837,044 |
Expand All @@ -136,7 +137,7 @@ It may seem heavy but it's **very light** considering its **simple** and **effic
In a game where you want to have an encrypted "**score**" for the player, you can just **switch** the score's variable **type** from an **int** to an **EncInt**.
They **work** the same, **behave** the same, and have the same **methods** and **functionality**.
How many time you change the score variable? How many variables you want to be encrypted?
Even if you'll have **10,000,000 encrypted variables** that you want to change **at once** (it is probably unnecessary to have all of them enc), you can do it and you'll have exactly the same **framerate**. It is a **very light** encryption solution.
Even if you'll have **1,000,000 encrypted variables** that you want to change **at once** (it is probably unnecessary to have all of them enc), you can do it and you'll have exactly the same **framerate**. It is a **very light** encryption solution.

### Example of usage:
I **opened** the application from the "**Benchmark**" folder.
Expand All @@ -163,7 +164,7 @@ It also says shows the **amount of changes** you can perform **in a second** on

### Run benchmark again
You can **run again** the same benchmark by pressing **Space** when the results are shown.
You can also run the previous benchmark again by typing **"p"** or **"prev"**.
You can also run the previous benchmark again by typing **"p"** or **"prev"** in the first menu.

### Multiple choices at once
I could perform the same benchmark as before, by inputting all the choices at once.
Expand All @@ -178,7 +179,7 @@ By typing **"size"** or **"s"** in the opening menu, you can see the sizes of ev

### Files
You can lunch the benchmark executable from [here](https://github.com/JosepeDev/Variable-Encryption/tree/main/Benchmark)
You can also see the Benchmark Application's Solution in [this](https://github.com/JosepeDev/VarEnc/tree/main/Benchmark/Solution%20(Not%20very%20organized)) folder
You can also see the Benchmark Application's Solution in [this](https://github.com/JosepeDev/VarEnc/tree/main/Benchmark/Solution) folder

# Documentations
**Every EncType contains the same methods and fields as its normal type.**
Expand Down

0 comments on commit 685ef06

Please sign in to comment.