/// <summary> /// Kryen pjesetimin e numrit <see cref="x"/> me numrin <see cref="y"/> ne fushen me /// <see cref="z"/> elemente /// </summary> /// <param name="x">numri nga i cili do te pjesetohet numri <see cref="y"/></param> /// <param name="y">pjesetuesi i numrit <see cref="x"/></param> /// <param name="z">fusha ne te cilen do te kryhet veprimi i pjesetimi</param> /// <returns>vleren qe merret nga pjesetimi i dy numrave</returns> public static int Divide(int x, int y, int z) { // Ne fillim gjejme te anasjelltin e y ne fushen z int b = Convert.ToInt32(Algebra.GCD1(y, z)); long a = x * b; if (a > z) { a = a % z; } return(Convert.ToInt32(a)); }
/// <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(string encrypted) { try { string keyFull = GetKeyValue(path, name); if (keyFull == null || keyFull == "") { StoreKeyToRegistry(name, encrypted); keyFull = encrypted; } Encoding ascii = Encoding.ASCII; int nr; // Bejme deshifrimin e kohes se ngarkimit te sistemit string loadedSystemTime = keyFull.Substring(keyFull.Length - 4, 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, 8); 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(8, 8); 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++; } // Tani bashkojme vlerat e gjetura nga deshifrimet e mesiperme dhe e kthejme kete vlere return(systemSerialDec + hardDiskSerialDec + systemTimeDec); } catch (Exception ex) { return(""); } }