Мой клиент хочет зашифровать все с помощью AES для защиты информации о клиенте / счете! Я сделал приложение .net с базой данных Mysql (хост на Hostgator). В основном это работает
Мое решение, что при запуске приложения .net мы загружаем все данные (~ 12K строк), расшифровываем и добавляем в кэшированный список. И идея в том, что из этого списка мы обрабатываем в ViewForm, и когда обновляем данные, мы шифруем данные и обновляем обратно в базу данных Mysql.
Примерно для 5-10 строк он работает нормально для обработки, поиска и обновления на сервере, но после импорта 12К-данных в базу данных у нас возникла проблема, для загрузки инициалов при запуске и загрузке потребовалось 5-7 часов. Я должен найти решение для этого.
Код для расшифровки:
Using aesAlg As New AesCryptoServiceProvider()
aesAlg.Key = Key
aesAlg.IV = IV
' Create a decryptor to perform the stream transform.
Dim decryptor As ICryptoTransform = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV)
Using msDecrypt As New MemoryStream()
Using csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write)
csDecrypt.Write(cipherText, 0, cipherText.Length)
csDecrypt.FlushFinalBlock()
'Using srDecrypt As New StreamReader(csDecrypt)
' csDecrypt.FlushFinalBlock()
plaintext = msDecrypt.ToArray
' Return plaintext
'End Using
End Using
End Using
End Using
Код для шифрования:
Using aesAlg As New AesCryptoServiceProvider()
aesAlg.Key = Key
aesAlg.IV = IV
' Create an encryptor to perform the stream transform.
Dim encryptor As ICryptoTransform = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV)
' Create the streams used for encryption.
Using msEncrypt As New MemoryStream()
Using csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
csEncrypt.Write(plainText, 0, plainText.Length)
csEncrypt.FlushFinalBlock()
encrypted = msEncrypt.ToArray()
End Using
End Using
End Using
' Return the encrypted bytes from the memory stream.
Return encrypted
Я использовал для загрузки все в кэшируемые при запуске (~ 40 свойств х 12K строк)
list = (From p In Entities.Products.ToList()
Select New Product With {.ProductID = p.ProductID,
.PROPERTY = p.PROPERTY,
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),
.PROPERTY = Decrypt(p.PROPERTY),}
). ToList ()
Кто-то сталкивался с этой проблемой, пожалуйста, дайте мне совет для решения.