using System.Text;

namespace SGModule.Common.Helper {
    public class Cryptor {
        public static string Encrypt(string data, string key) {
            var keyMD5 = MD5Helper.MD5String1(key);
            var str = Base64Helper.Encode(data + keyMD5);

            var bytes = Encoding.UTF8.GetBytes(str);
            for (int i = 0, j = bytes.Length - 1; i < j; i += 1, j -= 1) {
                if (i % 2 == 0) {
                    (bytes[i], bytes[j]) = (bytes[j], bytes[i]);
                }
            }

            var loginData = Encoding.UTF8.GetString(bytes);
            return loginData;
        }

        public static string Decrypt(string data, string key) {
            var bytes = Encoding.UTF8.GetBytes(data);
            for (int i = 0, j = bytes.Length - 1; i < j; i += 1, j -= 1) {
                if (i % 2 == 0) {
                    (bytes[i], bytes[j]) = (bytes[j], bytes[i]);
                }
            }

            var str = Encoding.UTF8.GetString(bytes);
            var str1 = Base64Helper.Decode(str);
            var keyMD5 = MD5Helper.MD5String1(key);
            var result = str1.Replace(keyMD5, string.Empty);
            return result;
        }
    }
}
