/// <summary> /// Ben deshifrimin e numrit serial qe eshte i ruajtur ne rregjistra nga versioni i plote ne /// versionin DEMO /// </summary> /// <returns>numrin serial te deshifruar</returns> private static string DecryptKeyFull() { try { int length = Convert.ToInt32(GetKeyValue("Vlera2")); string keyFull = GetKeyValue(path, name); Encoding ascii = Encoding.ASCII; int nr; // Bejme deshifrimin e numrit te dhomave qe jane ne program string nrDhomash = keyFull.Substring(keyFull.Length - length, length); string nrDhomashDec = ""; Byte[] encodedRoomCount = ascii.GetBytes(nrDhomash); foreach (Byte b in encodedRoomCount) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr + 6) / 8) - 9 nr = Algebra.Substract(Algebra.Divide(Algebra.Sum(nr, 6, 59), 8, 59), 9, 59); nrDhomashDec += Algebra.GetChar(nr).ToString(); } // Bejme deshifrimin e kohes se ngarkimit te sistemit string loadedSystemTime = keyFull.Substring(keyFull.Length - (4 + length), 4); string systemTimeDec = ""; Byte[] systemTime = ascii.GetBytes(loadedSystemTime); foreach (Byte b in systemTime) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr + 8) / 3) - 15 nr = Algebra.Substract(Algebra.Divide(Algebra.Sum(nr, 6, 59), 3, 59), 15, 59); systemTimeDec += Algebra.GetChar(nr).ToString(); } // Bejme deshifrimin e numrit serial te sistemit string systemSerial = keyFull.Substring(0, 10); string systemSerialDec = ""; Byte[] encodedSystemSerial = ascii.GetBytes(systemSerial); foreach (Byte b in encodedSystemSerial) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr - 7) / 10) + 2 nr = Algebra.Sum(Algebra.Divide(Algebra.Substract(nr, 7, 59), 10, 59), 2, 59); systemSerialDec += Algebra.GetChar(nr).ToString(); } // Bejme deshifrimin e numrit serial te hard diskut string hardDiskSerial = keyFull.Substring(10, keyFull.Length - (4 + length + 10)); string hardDiskSerialDec = ""; Byte[] encodedHDSerial = ascii.GetBytes(hardDiskSerial); int i = 0; foreach (Byte b in encodedHDSerial) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr - ((i * 3) + 3) / 7) - 6 nr = Algebra.Substract(Algebra.Divide(Algebra.Substract(nr, Algebra.Sum(Algebra.Multiply(i, 3, 59), 3, 59), 59), 7, 59), 6, 59); hardDiskSerialDec += Algebra.GetChar(nr).ToString(); i++; } int numerDhomash = Convert.ToInt32(nrDhomashDec); numerDhomash = (numerDhomash + 4) * 3; // Tani bashkojme vlerat e gjetura nga deshifrimet e mesiperme dhe e kthejme kete vlere return(systemSerialDec + hardDiskSerialDec + systemTimeDec + "-" + numerDhomash.ToString()); } catch (Exception ex) { return(""); } }
private static string EncryptKeyFull() { string keyDemo = GetKeyValue(path, name); Encoding ascii = Encoding.ASCII; string[] split = keyDemo.Split(new char[] { '-' }); // Nese gjendet me shume se nje vize atehere vlerat e rregjistrave nuk jane ne rregull. // Ne kete rast kthe null if (split.Length != 2) { return(null); } // Nese numri i dhomave nuk plotpjesetohet me 3 atehere ai eshte modifikuar jashte programit. // Kthe vlere null edhe ne kete rast if ((Convert.ToInt32(split[1]) % 3) != 0) { return(null); } int roomCount = (Convert.ToInt32(split[1]) / 3) - 4; // Tani bejme kriptimin e numrit te dhomave Byte[] encodedRoomCount = ascii.GetBytes(roomCount.ToString()); int nr; string nrDhomash = ""; foreach (Byte b in encodedRoomCount) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr + 9) * 8) - 6 ne Z(59) nr = Algebra.Substract(Algebra.Multiply(Algebra.Sum(nr, 9, 59), 8, 59), (6), 59); nrDhomash += Algebra.GetChar(nr).ToString(); } // Bejme kriptimin e kohes kur eshte ngarkuar sistemi string loadedSystemTime = split[0].Substring(split[0].Length - 4, 4); Byte[] systemTime = ascii.GetBytes(loadedSystemTime); string encodedSystemTime = ""; foreach (Byte b in systemTime) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr + 15) * 3) - 8 nr = Algebra.Substract(Algebra.Multiply(Algebra.Sum(nr, 15, 59), 3, 59), 6, 59); encodedSystemTime += Algebra.GetChar(nr).ToString(); } // Bejme kriptimin e numrit serial te Windows-it string systemSerial = split[0].Substring(0, 10); Byte[] encodedSystemSerial = ascii.GetBytes(systemSerial); string systemSerialEnc = ""; foreach (Byte b in encodedSystemSerial) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr - 2) * 10) + 7 nr = Algebra.Sum(Algebra.Multiply(Algebra.Substract(nr, 2, 59), 10, 59), 7, 59); systemSerialEnc += Algebra.GetChar(nr); } // Bejme kriptimin e ID-se se hardDiskut string hardDisk = split[0].Substring(10, split[0].Length - 14); Byte[] encodedHardDiskID = ascii.GetBytes(hardDisk); string hardDiskIDEnc = ""; int i = 0; foreach (Byte b in encodedHardDiskID) { nr = Algebra.GetIndex(Convert.ToChar(b)); // Bejme kete veprim: ((nr + 6) * 7) + ((i * 3) + 3) nr = Algebra.Sum(Algebra.Multiply(Algebra.Sum(nr, 6, 59), 7, 59), Algebra.Sum(Algebra.Multiply(i, 3, 59), 3, 59), 59); hardDiskIDEnc += Algebra.GetChar(nr); i++; } // Ne kete pike vendosim te gjitha vlerat e nxjerra nga kriptimi, bashke return(systemSerialEnc + hardDiskIDEnc + encodedSystemTime + nrDhomash); // return keyDemo; }