1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# Establecer la ruta del archivo de origen y el archivo cifrado de destino "hola amigos" > original.txt $SourceFile = "original.txt" $EncryptedFile = "cifrado.txt" $decry = "decr.txt" # Generar una clave aleatoria para el cifrado AES $AESKey = New-Object Byte[] 32 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey) # Generar un vector de inicialización aleatorio para el cifrado AES $AESIV = New-Object Byte[] 16 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESIV) ########### CIFRAR # Leer el archivo de origen y cifrarlo utilizando AES $FileStream = New-Object IO.FileStream ($EncryptedFile, [IO.FileMode]::Create) $Aes = New-Object Security.Cryptography.AesCryptoServiceProvider $Aes.Key = $AESKey $Aes.IV = $AESIV $CryptoStream = New-Object Security.Cryptography.CryptoStream $FileStream, $Aes.CreateEncryptor(), ([Security.Cryptography.CryptoStreamMode]::Write) $StreamReader = New-Object IO.StreamReader $SourceFile $StreamWriter = New-Object IO.StreamWriter $CryptoStream $StreamWriter.Write($StreamReader.ReadToEnd()) $StreamWriter.Close() $StreamReader.Close() $CryptoStream.Close() $FileStream.Close() gc $EncryptedFile ########### DESCIFRAR # Leer el archivo cifrado y descifrarlo utilizando AES $FileStream = New-Object IO.FileStream ($EncryptedFile, [IO.FileMode]::Open) $Aes = New-Object Security.Cryptography.AesCryptoServiceProvider $Aes.Key = $AESKey $Aes.IV = $AESIV $CryptoStream = New-Object Security.Cryptography.CryptoStream $FileStream, $Aes.CreateDecryptor(), ([Security.Cryptography.CryptoStreamMode]::Read) $StreamReader = New-Object IO.StreamReader $CryptoStream $StreamWriter = New-Object IO.StreamWriter $decry $StreamWriter.Write($StreamReader.ReadToEnd()) $StreamWriter.Close() $StreamReader.Close() $CryptoStream.Close() $FileStream.Close() gc $decry |