Posted: 19th Jul 2021 12:38
Host and Join network at the following page: file:///D:/Program%20Files%20(x86)/The%20Game%20Creators/AGK2/Tier%201/Help/Reference/Multiplayer.htm

Are they encrypted?
If not, is there a way to encrypt them?
Posted: 19th Jul 2021 15:44
I believe its sent as unencrypted raw data,

You could try a simple ROT routine to add basic obfuscation

What platform are you targeting?
Posted: 20th Jul 2021 6:07
windows and linux...
is there a basic code sample for this?
Posted: 20th Jul 2021 13:10
Until 5 mins ago, no .....


A simple ROT system, will take the the string and shift each character by (amount)

+ Code Snippet
Function ROT_EnCrypt(input as string, amont as integer)
	
	output as string
	l = len(input)
	for i=1 to l
		char$ = Mid(input, i, 1)
		output=output+Chr(Asc(char$)+amont)
	next
	
EndFunction output

Function ROT_DeCrypt(input as string, amont as integer)
	
	output as string
	l = len(input)
	for i=1 to l
		char$ = Mid(input, i, 1)
		output=output+Chr(Asc(char$)-amont)
	next
		
	
EndFunction output

base$ =  "This is my string, keep me safe on the interwebs."
rot = 13

enCrypted$ = ROT_EnCrypt(base$, rot)
deCcrypted$ = ROT_DeCrypt(enCrypted$, rot)

Message(enCrypted$)
Message(deCcrypted$)


I must stress this is a very simplistic cypher so do not use this for sensitive data, you could build on top of it and ROT in many directions by variable amounts, this would be your secret cypher that only your code knows what series of rotations will decrypt.
Posted: 20th Jul 2021 15:54
A simple ROT system, will take the the string and shift each character by (amount)

cool


I must stress this is a very simplistic cypher so do not use this for sensitive data, you could build on top of it and ROT in many directions by variable amounts, this would be your secret cypher that only your code knows what series of rotations will decrypt.

Shifting in an IP might not need to be changed to be better confusion.

Leaving the numbers legible would cause a misdirection if someone tried to copy and use them manually.

So, this could be helpful in storage of IPs for blockchains or anything sharing IP information for basic obscuring of the addresses on the network.

The list of IP addresses could still look like IP addresses, but really send snoops in the wrong direction when trying to use them without the knowledge they were cyphered.

Of course, the decimals may need to be handled separately to retain a valid order, but...
Posted: 20th Jul 2021 21:39
Maybe IP spoofing yea.

for more sensitive data as I said the rotations can be stacked, didn't have time earlier but its this easy ...

+ Code Snippet
Function ROT(input as string, amont as integer)
    output as string
    l = len(input)
    for i=1 to l
        char$ = Mid(input, i, 1)
        output=output+Chr(Asc(char$)+amont)
    next
EndFunction output


base$ =  "This is my string, keep me safe on the interwebs."

// Encrypt
enCrypted$ = ROT(ROT(ROT(ROT(ROT(base$, 13), -10), 14), 16), 12)
// Decrypt
deCcrypted$ = ROT(ROT(ROT(ROT(ROT(enCrypted$, -13), 10), -14), -16), -12)
 
Message(enCrypted$)
Message(deCcrypted$)


As you can see, just nest the calls and mirror the number for decrypt, stack them ten high and I bet any hacker worth his salts would still struggle.
Posted: 20th Jul 2021 22:00
I have been thinking of using cryptographic nonces to creates hashes with leading desired output for first characters of the hash... like Bitcoin uses nonces for proof of work hashes to have the leading zeros.

Doesn't have to be zeros, or repeating ones either, so building the criteria for the nonces could be done in a way that uses other nonces etc for stacking those too for crazy complexity.
Posted: 21st Jul 2021 1:40
This ROT does not keep it safe either?
No matter how much it shift the bit, it shift them 'TOGETHER'?

Hmmm....
But how do I send the 'key' safely over the internet in the first place?
How do https work?

Hmmmmm......


This should be a working c# version for AGK-Sharp...
+ Code Snippet
static class ROT
{
    public static string ROT_String(string input, int amount)
	{
        string output = "";
        uint length = Agk.Len(input);
        string charX = "";
        for (uint x = 1; x <= length; x++)
		{
            charX = Agk.Mid(input, x, 1);
            output = output + Agk.Chr((uint)(Agk.Asc(charX) + amount));
        }
        return output;
	}



}


Something like AppGameKit using a c++ crypto library would have been fine for both basic and c++ version of AppGameKit?