/// <summary> /// Method that encode an string /// </summary> /// <param name="u">User</param> /// <param name="StringToEncode">String to encode</param> /// <returns></returns> public static string EncodeUserString(lovis.Controllers.Users.Users u, 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 + "&" + u.RandomKey.Substring(0, 8))); // Return it return(fullencodedstring); }
/// <summary> /// Method that decodes an string /// </summary> /// <param name="StringToDecode">String to decode</param> /// <returns></returns> public static string DecodeUserString(string StringToDecode, lovis.Controllers.Users.Users u) { // Decode StringToDecode. byte[] data = Convert.FromBase64String(StringToDecode); string decodedString = Encoding.UTF8.GetString(data); // Split in 2. string[] splittedstring = decodedString.Split('&'); if (u.RandomKey.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); }