Definición encripción ( código )
...En criptografía, el cifrado es un procedimiento que utiliza un algoritmo de cifrado con cierta clave (clave de cifrado) para transformar un mensaje, sin atender a su estructura lingüística o significado, de tal forma que sea incomprensible o, al menos, difícil de comprender a toda persona que no tenga la clave secreta (clave de descifrado) del algoritmo. Las claves de cifrado y de descifrado pueden ser iguales (criptografía simétrica), (criptografía asimétrica) o (Criptografía híbrida)...
Link artículo
https://www.codeproject.com/Articles/769741/Csharp-AES-bits-Encryption-Library-with-Salt
   public static class Serialization
    {
        public static string
ToJsonSerialize<T>(this T obj) where T : class
        {
           
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
            using (MemoryStream
stream = new MemoryStream())
            {
               
serializer.WriteObject(stream, obj);
                return
Encoding.Default.GetString(stream.ToArray());
            }
        }
        public static T
ToJsonDeserialize<T>(this T obj, string json) where T : class
        {
            using (MemoryStream
stream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
            {
               
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
                return
serializer.ReadObject(stream) as T;
            }
        }
        public static string
ToXmlSerialize<T>(this T obj)
        {
            try
            {
                string xmlString = null;
                MemoryStream
memoryStream = new MemoryStream();
               
XmlSerializer xs = new XmlSerializer(typeof(T));
               
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
               
xs.Serialize(xmlTextWriter, obj);
                memoryStream
= (MemoryStream)xmlTextWriter.BaseStream;
                xmlString =
UTF8ByteArrayToString(memoryStream.ToArray()); return xmlString;
            }
            catch
            {
                return string.Empty;
            }
        }
        public static T
ToXmlDeserialize<T>(this string xml)
        {
            XmlSerializer xs
= new XmlSerializer(typeof(T));
            MemoryStream
memoryStream = new MemoryStream(StringToUTF8ByteArray(xml));
            XmlTextWriter
xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
            return
(T)xs.Deserialize(memoryStream);
        }
        private static string
UTF8ByteArrayToString(byte[] characters)
        {
            UTF8Encoding
encoding = new UTF8Encoding();
            string
constructedString = encoding.GetString(characters);
            return
(constructedString);
        }
        private static Byte[]
StringToUTF8ByteArray(string pXmlString)
        {
            UTF8Encoding
encoding = new UTF8Encoding();
            byte[] byteArray =
encoding.GetBytes(pXmlString);
            return byteArray;
        }
    }
-------------------
Ejemplo
  class Program
    {
        static void Main(string[] args)
        {
            string data = "Hello
World";
            data = data.ToEncrypt();
            data = data.ToDecrypt();
        }
    }
   public static string EncodeAndEncrypt(this string value)
       
{
           
return
System.Web.HttpUtility.UrlEncode(Encryption.ToEncrypt(value));
       
}
       
public static string
EncodeAndDecrypt(this string value)
       
{
           
string res =
System.Web.HttpUtility.UrlDecode(System.Web.HttpUtility.UrlEncode(value));
           
return Encryption.ToDecrypt(res);
        }
    public static class Encryption
    {
        private static string PassEncryt
= "1450Pass*-qq";
        public static string ToEncrypt(this string value)
        {
            return
internalEncrypt(value, PassEncryt);
        }
        public static string ToDecrypt(this string value)
        {
            return internalDecrypt(value,
PassEncryt);
        }
        private static string
internalEncrypt(this string
stringToEncrypt, string sEncryptionKey)
        {
            byte[] key = {
};
            byte[] IV = {
10, 20, 30, 40, 50, 60, 70, 80 };
            byte[]
inputByteArray;
            try
            {
                key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0,
8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms,
des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0,
inputByteArray.Length);
                cs.FlushFinalBlock();
                return (Convert.ToBase64String(ms.ToArray()));
            }
            catch (System.Exception ex)
            {
                return ex.Message;
            }
        }
        private static string
internalDecrypt(this string
stringToDecrypt, string sEncryptionKey)
        {
            byte[] key = {
};
            byte[] IV = {
10, 20, 30, 40, 50, 60, 70, 80 };
            byte[]
inputByteArray = new byte[stringToDecrypt.Length];
           
try
            {
                key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0,
8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Convert.FromBase64String(stringToDecrypt);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms,
des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0,
inputByteArray.Length);
                cs.FlushFinalBlock();
                Encoding encoding = Encoding.UTF8;
                return
encoding.GetString(ms.ToArray());
            }
            catch (System.Exception ex)
            {
                return ex.Message;
            }
       
}
    }
 
 
No hay comentarios:
Publicar un comentario