public string Encrypt(EnumCrypt typeCrypt, string inputText) { //Declarando encoder var UTF8Encoder = new UTF8Encoding(); //Converte em base64 e envia para a função de encriptar e desencriptar depois retorna e converte para string novamente string Result = Convert.ToBase64String(EncryptDecrypt(typeCrypt, UTF8Encoder.GetBytes(inputText), true)); //Retorno return(Result); }
public string Decrypt(EnumCrypt typeCrypt, string inputText) { //Declarando o encoder var utf8Encoder = new UTF8Encoding(); try { //Converte em base64 e envia para a função de encriptar e desencriptar depois retorna e converte para string novamente return(utf8Encoder.GetString(EncryptDecrypt(typeCrypt, Convert.FromBase64String(inputText.Trim()), false))); } catch (Exception ex) { return(null); } }
public CryptGeneric(EnumCrypt typeCrypt, string NewPass) { //Usa saltos para evitar atack de dicionário var pdb = new PasswordDeriveBytes(NewPass, SALTBYTEARRAY); //-------------------------- /*Encoder tipo DES*/ //DES.Create(); //-------------------------- /*Encoder tipo RC2*/ //RC2.Create(); //-------------------------- /*Encoder tipo Rijndael*/ //Rijndael.Create(); //-------------------------- /*Encoder tipo Triple-DES*/ //TripleDES.Create(); //-------------------------- SymmetricAlgorithm algo; switch (typeCrypt) { case EnumCrypt.DES: algo = DES.Create(); break; case EnumCrypt.RC2: algo = RC2.Create(); break; case EnumCrypt.Rijndael: algo = Rijndael.Create(); break; case EnumCrypt.TripleDES: algo = TripleDES.Create(); break; default: throw new NotImplementedException($"Cryptation not implemented [{typeCrypt}]."); } MKEY = pdb.GetBytes(algo.KeySize / 8); MIV = pdb.GetBytes(algo.BlockSize / 8); }
public static string EnCrypt(EnumCrypt typeCrypt, string texto, string pass) { var crypt = new CryptGeneric(typeCrypt, pass); return(crypt.Encrypt(typeCrypt, texto)); }
public static string EnCrypt(EnumCrypt typeCrypt, string texto) { return(EnCrypt(typeCrypt, texto, ConfigurationManager.AppSettings["CryptKey"])); }
private byte[] EncryptDecrypt(EnumCrypt typeCrypt, byte[] inputBytes, bool encrpyt) { //-------------------------- /*Encoder tipo DES*/ //DES.Create(); //-------------------------- /*Encoder tipo RC2*/ //RC2.Create(); //-------------------------- /*Encoder tipo Rijndael*/ //Rijndael.Create(); //-------------------------- /*Encoder tipo Triple-DES*/ //TripleDES.Create(); //-------------------------- SymmetricAlgorithm SA; switch (typeCrypt) { case EnumCrypt.DES: SA = DES.Create(); break; case EnumCrypt.RC2: SA = RC2.Create(); break; case EnumCrypt.Rijndael: SA = Rijndael.Create(); break; case EnumCrypt.TripleDES: SA = TripleDES.Create(); break; default: throw new NotImplementedException($"Cryptation not implemented [{typeCrypt}]."); } //-------------------------- SA.Key = MKEY; SA.IV = MIV; //Transformação correta baseado no opção so usuario var transform = encrpyt ? SA.CreateEncryptor() : SA.CreateDecryptor(); //Memory stream para saida var memStream = new MemoryStream(); //Array de bytes para saida byte[] output; //Configura o encriptador e escreve no MemoryStream a saida var cryptStream = new CryptoStream(memStream, transform, CryptoStreamMode.Write); //Escreve as informações no mecanismo do encriptador cryptStream.Write(inputBytes, 0, inputBytes.Length); //Finaliza e escreve todas as informações necessárias na memoria cryptStream.FlushFinalBlock(); //Resgata o array de bytes output = memStream.ToArray(); //Finaliza o mecanismo de criptografia e fecha o canal de comunicação de memoria cryptStream.Close(); return(output); }