diff --git a/Baget/Aplicacion.nuspec b/Baget/Aplicacion.nuspec index 830df63..dd86005 100644 --- a/Baget/Aplicacion.nuspec +++ b/Baget/Aplicacion.nuspec @@ -2,7 +2,7 @@ tsl5 - 3.0.11 + 3.0.12 Tecnosis Tecnosis false diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index 206fde0..8b14c85 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -31,15 +31,16 @@ Imports System.Runtime.InteropServices ' mediante el asterisco ('*'), como se muestra a continuación: ' - - + + ' Modificaciones: ' =============== -' 30/07/2027 MANMOG Version 3.0.11 Se establece el parametro pooling a verdadero por defecto -' 09/07/2027 MANMOG Version 3.0.8 Se deshace corrección anterior -' 30/06/2027 MANMOG Version 3.0.7 Corrección CharConverter -' 26/06/2027 MANMOG Version 3.0.6 Se añade tsExcepcion -' 03/06/2027 MANMOG Version 3.0.5 Correccion en tsNotificacionesClient +' 19/08/2026 MANMOG Version 3.0.12 Se añade rutina EncriptarTexto y DesencriptarTexto +' 30/07/2026 MANMOG Version 3.0.11 Se establece el parametro pooling a verdadero por defecto +' 09/07/2026 MANMOG Version 3.0.8 Se deshace corrección anterior +' 30/06/2026 MANMOG Version 3.0.7 Corrección CharConverter +' 26/06/2026 MANMOG Version 3.0.6 Se añade tsExcepcion +' 03/06/2026 MANMOG Version 3.0.5 Correccion en tsNotificacionesClient ' 14/05/2026 MANMOG Version 3.0.4 Actualización de .nuspec para que incluya dependencias externas \ No newline at end of file diff --git a/crypt.vb b/crypt.vb index c2d53fa..207757e 100644 --- a/crypt.vb +++ b/crypt.vb @@ -582,4 +582,55 @@ Public Class crypt Next Return sb.ToString() End Function + + Public Shared Function EncriptarTexto(Texto As String, password As String) As String + Dim key As Byte() = GetKey(password) + Dim aes As Aes = Aes.Create() + aes.Key = key + aes.Mode = CipherMode.CBC + aes.Padding = PaddingMode.PKCS7 + aes.GenerateIV() + + Dim iv As Byte() = aes.IV + Dim encryptor = aes.CreateEncryptor() + + Dim plainBytes = Encoding.UTF8.GetBytes(Texto) + Dim ms As New MemoryStream() + ms.Write(iv, 0, iv.Length) ' Guardamos el IV al principio + Using cs As New CryptoStream(ms, encryptor, CryptoStreamMode.Write) + cs.Write(plainBytes, 0, plainBytes.Length) + cs.FlushFinalBlock() + End Using + + Return Convert.ToBase64String(ms.ToArray()) + End Function + Public Shared Function DesencriptarTexto(Texto As String, password As String) As String + Dim fullCipher = Convert.FromBase64String(Texto) + Dim key As Byte() = GetKey(password) + + Dim aes As Aes = Aes.Create() + + aes.Key = key + aes.Mode = CipherMode.CBC + aes.Padding = PaddingMode.PKCS7 + + Dim iv(15) As Byte + Array.Copy(fullCipher, iv, iv.Length) + aes.IV = iv + + Dim decryptor = aes.CreateDecryptor() + Dim ms As New MemoryStream() + Using cs As New CryptoStream(ms, decryptor, CryptoStreamMode.Write) + cs.Write(fullCipher, iv.Length, fullCipher.Length - iv.Length) + cs.FlushFinalBlock() + End Using + + Return Encoding.UTF8.GetString(ms.ToArray()) + End Function + Private Shared Function GetKey(password As String) As Byte() + Using sha256 As SHA256 = SHA256.Create() + Return sha256.ComputeHash(Encoding.UTF8.GetBytes(password)) + End Using + End Function + End Class \ No newline at end of file