コード例 #1
0
ファイル: CryptoUtils.cs プロジェクト: haihai2212/Lovis
        /// <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);
        }
コード例 #2
0
ファイル: CryptoUtils.cs プロジェクト: haihai2212/Lovis
        /// <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);
        }