texto obtener numerico net formato encriptar desencriptar conexion cadena app vb.net

vb.net - obtener - ¿Cómo guardar una cadena cifrada en la base de datos?



formato numerico c# (3)

Tengo esta función en VB.net "ENCRYPT" (ver abajo)

Private key() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24} Private iv() As Byte = {65, 110, 68, 26, 69, 178, 200, 219} Public Function Encrypt(ByVal plainText As String) As Byte() '' Declare a UTF8Encoding object so we may use the GetByte '' method to transform the plainText into a Byte array. Dim utf8encoder As UTF8Encoding = New UTF8Encoding() Dim inputInBytes() As Byte = utf8encoder.GetBytes(plainText) '' Create a new TripleDES service provider Dim tdesProvider As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider() '' The ICryptTransform interface uses the TripleDES '' crypt provider along with encryption key and init vector '' information Dim cryptoTransform As ICryptoTransform = tdesProvider.CreateEncryptor(Me.key, Me.iv) '' All cryptographic functions need a stream to output the '' encrypted information. Here we declare a memory stream '' for this purpose. Dim encryptedStream As MemoryStream = New MemoryStream() Dim cryptStream As CryptoStream = New CryptoStream(encryptedStream, cryptoTransform, CryptoStreamMode.Write) '' Write the encrypted information to the stream. Flush the information '' when done to ensure everything is out of the buffer. cryptStream.Write(inputInBytes, 0, inputInBytes.Length) cryptStream.FlushFinalBlock() encryptedStream.Position = 0 '' Read the stream back into a Byte array and return it to the calling method. Dim result(encryptedStream.Length - 1) As Byte encryptedStream.Read(result, 0, encryptedStream.Length) cryptStream.Close() Return result End Function

Quiero guardar la cadena cifrada en la base de datos SQL. ¿Cómo lo hago?


Codifica la matriz de bytes en una cadena. 0x00 puede ser "00" y 0xFF puede ser "FF". O puedes echarle un vistazo a Base64 .


Simplemente almacene en una columna binaria. (Mayormente hecho desde la memoria, ¡bienvenidas correcciones!)

CREATE TABLE [Test] ( [Id] NOT NULL IDENTITY(1,1) PRIMARY KEY, [Username] NOT NULL VARCHAR(500), [Password] NOT NULL VARBINARY(500) )

Luego inserta tal:

Dim conn As SqlConnection Try conn = New SqlConnection("<connectionstring>") Dim command As New SqlCommand("INSERT INTO [Test] ([Username], [Password]) VALUES (@Username, @Password)", conn) Dim usernameParameter = New SqlParameter("@Username", SqlDbType.VarChar) usernameParameter.Value = username command.Parameters.Add(usernameParameter) Dim passwordParameter = New SqlParameter("@Password", SqlDbType.VarBinary) passwordParameter.Value = password command.Parameters.Add(passwordParameter) command.ExecuteNonQuery() Finally If (Not (conn Is Nothing)) Then conn.Close() End If End Try


Una cadena encriptada no debe ser diferente a cualquier información binaria.

Si sabe que los resultados serán pequeños, podría usarlos y guardarlos en un campo de texto.