Last active
April 16, 2019 00:53
-
-
Save graco911/81c15be7f61c2afb1e577f5e4572b9cb to your computer and use it in GitHub Desktop.
ClaseEncriptador
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.IO; | |
using System.Security.Cryptography; | |
using System.Text; | |
namespace CryptoUtil | |
{ | |
public abstract class RijndaelSimple | |
{ | |
static internal string passbase = "s@lAvz"; | |
public string Encriptar(string textoQueEncriptaremos) | |
{ | |
return Encriptar(textoQueEncriptaremos, "pass75dc@avz10", passbase, "MD5", 1, "@1B2c3D4e5F6g7H8", 128); | |
} | |
public string Encriptar(string textoQueEncriptaremos, string passBase, string saltValue, string hashAlgorithm, int passwordIterations, string initVector, int keySize) | |
{ | |
byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); | |
byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); | |
byte[] plainTextBytes = Encoding.UTF8.GetBytes(textoQueEncriptaremos); | |
PasswordDeriveBytes password = new PasswordDeriveBytes(passBase, saltValueBytes, hashAlgorithm, passwordIterations); | |
byte[] keyBytes = password.GetBytes(keySize / 8); | |
RijndaelManaged symmetricKey = new RijndaelManaged() | |
{ | |
Mode = CipherMode.CBC | |
}; | |
ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, initVectorBytes); | |
MemoryStream memoryStream = new MemoryStream(); | |
CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write); | |
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); | |
cryptoStream.FlushFinalBlock(); | |
byte[] cipherTextBytes = memoryStream.ToArray(); | |
memoryStream.Close(); | |
cryptoStream.Close(); | |
string cipherText = Convert.ToBase64String(cipherTextBytes); | |
return cipherText; | |
} | |
public string Desencriptar(string textoEncriptado) | |
{ | |
return Desencriptar(textoEncriptado, "pass75dc@avz10", passbase, "MD5", 1, "@1B2c3D4e5F6g7H8", 128); | |
} | |
public string Desencriptar(string textoEncriptado, string passBase, string saltValue, string hashAlgorithm, int passwordIterations, string initVector, int keySize) | |
{ | |
byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector); | |
byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue); | |
byte[] cipherTextBytes = Convert.FromBase64String(textoEncriptado); | |
PasswordDeriveBytes password = new PasswordDeriveBytes(passBase, saltValueBytes, hashAlgorithm, passwordIterations); | |
byte[] keyBytes = password.GetBytes(keySize / 8); | |
RijndaelManaged symmetricKey = new RijndaelManaged() | |
{ | |
Mode = CipherMode.CBC | |
}; | |
ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes); | |
MemoryStream memoryStream = new MemoryStream(cipherTextBytes); | |
CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read); | |
byte[] plainTextBytes = new byte[cipherTextBytes.Length]; | |
int decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length); | |
memoryStream.Close(); | |
cryptoStream.Close(); | |
string plainText = Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount); | |
return plainText; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment