using System; using System.Collections.Generic; using System.Globalization; using System.Text; namespace Asb.Base.V2; public static class DataConversionUtilities { public static string ToBase64(this string value) { string result = string.Empty; if (value != null) { result = Encoding.UTF8.GetBytes(value).ToBase64(); } return result; } public static string FromBase64(this string value) { string result = string.Empty; if (value != null) { byte[] bytes = value.FromBase64ToByteArray(); result = Encoding.UTF8.GetString(bytes); } return result; } public static string ToBase64(this byte[] value) { string result = string.Empty; try { result = Convert.ToBase64String(value); } catch { } return result; } public static string ToHex(this byte[] value) { StringBuilder stringBuilder = new StringBuilder(); if (value != null) { foreach (byte b in value) { stringBuilder.Append(b.ToString("X2", CultureInfo.CurrentCulture)); } } return stringBuilder.ToString(); } public static byte[] FromBase64ToByteArray(this string value) { byte[] result = null; if (value != null) { try { result = Convert.FromBase64String(value); } catch { } } return result; } public static byte[] FromHexToByteArray(this string value) { List list = new List(); if (value != null) { string text = value.Replace(" ", string.Empty); text = text.Replace("\r", string.Empty); text = text.Replace("\n", string.Empty); if (text.Length % 2 == 0) { for (int i = 0; i < text.Length; i += 2) { if (byte.TryParse(text.Substring(i, 2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out var result)) { list.Add(result); } } } } return list.ToArray(); } }