/// <summary> /// Clase de encriptación /// </summary> /// <param name="password">Texto que se usará para generar el algoritmo de cifrado</param> /// <param name="valorRGBSalt">una cadena de texto cualquiera</param> /// <param name="iteraciones">número de iteraciones</param> /// <param name="vectorInicial">Un texto o número de 16 bytes (16 caracteres)</param> /// <param name="keyLength">Tamaño clave: puede ser 128, 192 o 256</param> public AESHelper(string password, string valorRGBSalt, int iteraciones, string vectorInicial, EKeyLength keyLength) { if (vectorInicial == null) vectorInicial = ""; if (vectorInicial.Length != 16) { if (vectorInicial.Length < 16) vectorInicial = vectorInicial.PadLeft(16, '0'); else vectorInicial = vectorInicial.Substring(0, 16); } byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(vectorInicial); byte[] saltValueBytes = Encoding.ASCII.GetBytes(valorRGBSalt); PasswordDeriveBytes pd = new PasswordDeriveBytes(password, saltValueBytes, "SHA1" // Algoritmo de cifrado: puede ser MD5 ó SHA1 , iteraciones); byte[] keyBytes = pd.GetBytes((int)keyLength / 8); encryptor = symmetricKey.CreateEncryptor(keyBytes, InitialVectorBytes); decryptor = symmetricKey.CreateDecryptor(keyBytes, InitialVectorBytes); }
/// <summary> /// Clase de encriptación /// </summary> /// <param name="password">Texto que se usará para generar el algoritmo de cifrado</param> /// <param name="valorRGBSalt">una cadena de texto cualquiera</param> /// <param name="iteraciones">número de iteraciones</param> /// <param name="vectorInicial">Un texto o número de 16 bytes (16 caracteres)</param> /// <param name="keyLength">Tamaño clave: puede ser 128, 192 o 256</param> public AESHelper(string password, string valorRGBSalt, int iteraciones, string vectorInicial, EKeyLength keyLength) { if (vectorInicial == null) { vectorInicial = ""; } if (vectorInicial.Length != 16) { if (vectorInicial.Length < 16) { vectorInicial = vectorInicial.PadLeft(16, '0'); } else { vectorInicial = vectorInicial.Substring(0, 16); } } byte[] InitialVectorBytes = Encoding.ASCII.GetBytes(vectorInicial); byte[] saltValueBytes = Encoding.ASCII.GetBytes(valorRGBSalt); PasswordDeriveBytes pd = new PasswordDeriveBytes(password, saltValueBytes, "SHA1" // Algoritmo de cifrado: puede ser MD5 ó SHA1 , iteraciones); byte[] keyBytes = pd.GetBytes((int)keyLength / 8); encryptor = symmetricKey.CreateEncryptor(keyBytes, InitialVectorBytes); decryptor = symmetricKey.CreateDecryptor(keyBytes, InitialVectorBytes); }