chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:09 PM |
So I just got done making a encryption algorithm. The algorithm randomly generated a key when every given input. The algorithm goes as follows
Input & Key -> Byte -> Hex -> HexLetters to byte Input * Key
Here is a example of "uwon" in my algorithm with the key of 42 47 58 53: 3150 3619 38860 35457
If anyone wants this I'll happily post both the encryption and decryption functions! :) |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:11 PM |
"randomly generated a key" This is redundant as a pseudo-random generation has no way of decompilation... (ooh a rhyme) |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:11 PM |
| You know decrypters make more money then the ones who encrypt them. |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:15 PM |
I don't guess I understand my mistake cody, here's the src
function CryptiiEncode(Input) local Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" local Length = string.len(Input) local Encrypted = {} local InputHex = {} local KeyHex = {} --- Encode text throught Byte -> Hex and Generate and encode throught Byte -> Code for Index = 1, Length do InputHex[Index] = string.byte(string.sub(Input, Index, Index)) InputHex[Index] = string.format("%X", InputHex[Index])
local RandomChar = math.random(1, string.len(Alphabet)) KeyHex[Index] = string.sub(Alphabet, RandomChar, RandomChar) KeyHex[Index] = string.byte(KeyHex[Index]) KeyHex[Index] = string.format("%X", KeyHex[Index]) end Key = KeyHex for Index, Hex in next, InputHex do local InputLength = string.len(Hex) local InputChar = string.sub(Hex, InputLength, InputLength ) local KeyLength = string.len(KeyHex[Index]) local KeyChar = string.sub(KeyHex[Index], KeyLength, KeyLength) if not tonumber(InputChar) then InputHex[Index] = string.gsub(Hex, InputChar, string.byte(InputChar)) end if not tonumber(KeyChar) then KeyHex[Index] = string.gsub(KeyHex[Index], KeyChar, string.byte(KeyHex[Index])) end Encrypted[Index] = tonumber(InputHex[Index]) * tonumber(KeyHex[Index]) end return Encrypted, KeyHex end
function CryptiiDecode(Input, Key) local Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" local InputHex = {}
for Index = 1, #Input do InputHex[Index] = math.floor(Input[Index] / Key[Index]) local Length = string.len(InputHex[Index]) local HexByte = string.sub(InputHex[Index], 2, Length) local HexLetter = string.sub(InputHex[Index], Length - 1, Length) if Length >= 3 then InputHex[Index] = string.gsub(InputHex[Index], HexLetter, string.char(HexByte)) end InputHex[Index] = string.char(tonumber("0x" .. InputHex[Index])) end return InputHex end
|
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
| |
|
|
| 18 Dec 2015 09:19 PM |
| Because the logic of random, you can't just decompile something back to it's original form without losing data. I am not going to read your code. |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:21 PM |
| Thanks! It's my first encryption algorithm. If I got my math right (I never do) the combinations of a four digit pin should be 4^4 * 4^4 and even then you'd still need to know how to decrypt. |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:21 PM |
When I saw math.random..
I also knew this was impossible, as it is randomly generated.
An encryption follows some sort of advanced pattern.. this is just random |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:22 PM |
| Well alright Cody, decryption works just fine but I don't guess that's what you're talking about. |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:23 PM |
| Do you just throw in random characters for no reason? |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:25 PM |
No he means thatt the incryption process uses a randomly generated key as an encryption is not composed of random numbers/letters but of some sort of consistent pattern. Im guessing that either this is a useless char or we cannot fully figure out this thing encryption process.
> local RandomChar = math.random(1, string.len(Alphabet))
|
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:26 PM |
No when you give it a input it generates a key that's what the math.random is for. The sets of encryption and vise versa for decryption go as: For each character convert the character to a byte For each byte convert to a hex If there is a letter in the hex convert that letter to a byte Do this for each letter in e input and key
For each input [i] multiply that by key [i] |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:26 PM |
| cody the latency of my computer and my sheer typing is preventing me from typing ahead of you.. |
|
|
| Report Abuse |
|
|
cntkillme
|
  |
| Joined: 07 Apr 2008 |
| Total Posts: 44956 |
|
|
| 18 Dec 2015 09:29 PM |
gross.
Real encryption happens on the bit level with bit rols, xor, and mod (not really bit level but whatever) |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:29 PM |
| Probably. I also type average 95 wpm. |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:30 PM |
Typo, I'm on a iPad. The steps to encryption*
|
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:32 PM |
| Lol cnt, I wouldent be surprised if this is pretty gross it being my first encryption algorithm ever. I'll keep reading about encryption and stuff like that and hopefully I'll be able to post a more sensible algorithm in the future. Is this not a secure encryption cnt? |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:32 PM |
"Input & Key -> Byte -> Hex -> HexLetters to byte"
Your words condradict a lot.
|
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:33 PM |
| Yeah first time around doing this hex, how would you do it?? |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:34 PM |
It's what cnt would call idiot proof, as freemodeling idiots couldn't reobfuscate this.
Try decompiling into bytes then adding one, if > 255, you must be using some awkward keyboard or using some obfuscation already. Quit. Then compile back to char. |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:37 PM |
I'm sorry was that last part an encryption method or what? Im lost :P
On a scale of 1 / 10 if you didn't have the key or the method of decryption how hard would this be to crack? |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:38 PM |
| We wouldn't know because it is just a crap algorithm. |
|
|
| Report Abuse |
|
|
chimmmihc
|
  |
| Joined: 24 Jul 2014 |
| Total Posts: 2420 |
|
|
| 18 Dec 2015 09:40 PM |
| How? Just because of the level of data it operates on? |
|
|
| Report Abuse |
|
|
HexC3D
|
  |
| Joined: 30 Jun 2012 |
| Total Posts: 10044 |
|
|
| 18 Dec 2015 09:42 PM |
I would first create my own ending product unlike hexideciamls its harder to decode what you actually make.
Let's say..
x > ee 5 09 // this is just an example that is not accurate I would make a formula to compute the next generated length of encryption based on the character in the input and then create some math formula and then encrypt into something else. so when you decryption the new encryption you still have this
> ee 5 09 |
|
|
| Report Abuse |
|
|
|
| 18 Dec 2015 09:43 PM |
| Instead of making a random compiler to make a bunch of mumbo junk that no one wants bad enough to figure out in the first place, how about making it compile the code to be usable in c++? That would be something of use I think. |
|
|
| Report Abuse |
|
|