Migrating and Encrypting
getOldUsers – read the ds one by one from the old db, where the passwords are not yet encrypted.
InsertUserx – writes the users into your new (current) db, with passwords encrypted.
Public Function MigrateUser() As Integer
Dim dr As DataRow
Dim ds As DataSet
Dim dt As DataTable
Dim userID As Integer
ds = getOldUsers()
dt = ds.Tables(0)
For Each dr In dt.Rows
newPass = Encrypt(password)
userID = InsertUserx(dr("id"), "", dr("name").ToString, "", dr("lastName").ToString, dr("email").ToString, "", newPass , dr("address").ToString)
Next
ds.Dispose()
Return userID
End Function
Dim dr As DataRow
Dim ds As DataSet
Dim dt As DataTable
Dim userID As Integer
ds = getOldUsers()
dt = ds.Tables(0)
For Each dr In dt.Rows
newPass = Encrypt(password)
userID = InsertUserx(dr("id"), "", dr("name").ToString, "", dr("lastName").ToString, dr("email").ToString, "", newPass , dr("address").ToString)
Next
ds.Dispose()
Return userID
End Function
defines the key
Private lbtVector() As Byte = {240, 3, 45, 29, 0, 76, 173, 59}
Private lscryptoKey As String = "ChangeThis!"
Private lscryptoKey As String = "ChangeThis!"
Encrypts the password
Public Function Encrypt(ByVal sInputVal As String) As String
Dim loCryptoClass As New TripleDESCryptoServiceProvider
Dim loCryptoProvider As New MD5CryptoServiceProvider
Dim lbtBuffer() As Byte
Try
lbtBuffer = System.Text.Encoding.ASCII.GetBytes(sInputVal)
loCryptoClass.Key = loCryptoProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(lscryptoKey))
loCryptoClass.IV = lbtVector
sInputVal = Convert.ToBase64String(loCryptoClass.CreateEncryptor().TransformFinalBlock(lbtBuffer, 0, lbtBuffer.Length()))
Encrypt = sInputVal
Catch ex As CryptographicException
Throw ex
Catch ex As FormatException
Throw ex
Catch ex As Exception
Throw ex
Finally
loCryptoClass.Clear()
loCryptoProvider.Clear()
loCryptoClass = Nothing
loCryptoProvider = Nothing
End Try
End Function
Dim loCryptoClass As New TripleDESCryptoServiceProvider
Dim loCryptoProvider As New MD5CryptoServiceProvider
Dim lbtBuffer() As Byte
Try
lbtBuffer = System.Text.Encoding.ASCII.GetBytes(sInputVal)
loCryptoClass.Key = loCryptoProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(lscryptoKey))
loCryptoClass.IV = lbtVector
sInputVal = Convert.ToBase64String(loCryptoClass.CreateEncryptor().TransformFinalBlock(lbtBuffer, 0, lbtBuffer.Length()))
Encrypt = sInputVal
Catch ex As CryptographicException
Throw ex
Catch ex As FormatException
Throw ex
Catch ex As Exception
Throw ex
Finally
loCryptoClass.Clear()
loCryptoProvider.Clear()
loCryptoClass = Nothing
loCryptoProvider = Nothing
End Try
End Function
Decrypts the password:
Public Function Decrypt(ByVal sQueryString As String) As String
Dim buffer() As Byte
Dim loCryptoClass As New TripleDESCryptoServiceProvider
Dim loCryptoProvider As New MD5CryptoServiceProvider
Try
buffer = Convert.FromBase64String(sQueryString)
loCryptoClass.Key = loCryptoProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(lscryptoKey))
loCryptoClass.IV = lbtVector
Return Encoding.ASCII.GetString(loCryptoClass.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length()))
Catch ex As Exception
Throw ex
Finally
loCryptoClass.Clear()
loCryptoProvider.Clear()
loCryptoClass = Nothing
loCryptoProvider = Nothing
End Try
End Function
Dim buffer() As Byte
Dim loCryptoClass As New TripleDESCryptoServiceProvider
Dim loCryptoProvider As New MD5CryptoServiceProvider
Try
buffer = Convert.FromBase64String(sQueryString)
loCryptoClass.Key = loCryptoProvider.ComputeHash(ASCIIEncoding.ASCII.GetBytes(lscryptoKey))
loCryptoClass.IV = lbtVector
Return Encoding.ASCII.GetString(loCryptoClass.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length()))
Catch ex As Exception
Throw ex
Finally
loCryptoClass.Clear()
loCryptoProvider.Clear()
loCryptoClass = Nothing
loCryptoProvider = Nothing
End Try
End Function