Hash Lib
Hash Lib 2.0.1 Reuploaded
This is a reupload of magnificence7's hash Libary.
He used MIT License for his newest Version so i reuploaded it under the same License.
If you dont know what Hash functions are visit Wikipedia.org.
Usage
To generate a hash code, you need to have some input to digest. In this library that's called the 'hash input'. You fill the hash input and then generate a hash code from that. There are some actions to fill the hash input. The first action we need to use it the "Initialize Hash Input" function. With this function, you start of with a clean hash input. Do this every time you want create a new hash input, like when you want to generate a different hash code. Remember, the hash input should not be used anymore when you already generated a hash code with it, just initialize it again.
Then, to add data, there are different actions available. The following types of data are supported:
- Boolean
- Byte
- Integer
- Real
- String
- Unit Note: Text is not available yet. The action to add one of these types will look like this: "Add[Type]ToHashInput" where [Type] should be one of the supported types. For example, to add a boolean, use this function: "AddBooleanToHashInput".
Once you have filled the hash input like you want, you can use the function to generate the hash code. There are different functions for different hash functions, and they return a string containing the hexadecimal representation of the hash code. The following hash algorithms are supported by this lib:
MD5 (GenerateMd5HashCode)
SHA-256 (GenerateSha256HashCode
The functions to use a certain hash algorithm are written behind them within brackets.
Example
So to generate a SHA-256 hash code from the string "abc", you use the following actions/script:
Actions in GUI
- Initialize Hash Input
- Add String "abc" To Hash Input
- Variable - Set Hash Code = (Generate SHA-256 Hash Code)
Galaxy Script
string hashCode;
InitializeHashInput();
AddStringToHashInput("abc");
hashCode = GenerateSHA256HashCode();
I really appreciate this work. But please don't use trigger integer loop in your lib functions (within Add Integers/Strings To Hash Input). I got terrible bugs for calling your lib within a integer loop:
Updating user banks usually happens at the end of game, so the galaxy warnings "Embedded Integer Loops Detected" are often ignored when testing. Resulting in that the map loop is not fully executed, and things can go wrong. The even worse thing is, when testing maps in single player mode, all things works just fine.