/// <summary> /// Method that encode an string from an element, with its license /// </summary> /// <param name="u">User</param> /// <param name="StringToEncode">String to encode</param> /// <returns></returns> public static string EncodeElementString(lovis.Controllers.Proyects.Proyects p, string StringToEncode) { // Make it base64 string string encodedstring = Convert.ToBase64String(Encoding.UTF8.GetBytes(StringToEncode)); // Concat enodedstring + first 8 randomkey hash + encode all again string fullencodedstring = Convert.ToBase64String(Encoding.UTF8.GetBytes(encodedstring + "&" + p.IdLicense.Substring(0, 8))); // Return it return(fullencodedstring); }
/// <summary> /// Method that decodes an string from an elements, with its license /// </summary> /// <param name="StringToDecode">String to decode</param> /// <returns></returns> public static string DecodeElementString(lovis.Controllers.Proyects.Proyects p, string StringToDecode) { // Decode StringToDecode. byte[] data = Convert.FromBase64String(StringToDecode); string decodedString = Encoding.UTF8.GetString(data); // Split in 2. string[] splittedstring = decodedString.Split('&'); // If this license have access to that element if (p.IdLicense.Substring(0, 8) == splittedstring[1]) { // Get 1 and decode it again. data = Convert.FromBase64String(splittedstring[0]); decodedString = Encoding.UTF8.GetString(data); } else { decodedString = ""; } // Return it. return(decodedString); }