Страница: 1 | 2 | 3 |
|
Вопрос: Создание базы данных при помощи программы
|
Добавлено: 26.10.10 16:21
|
|
Номер ответа: 31 Автор ответа: AgentFire
ICQ: 192496851
Вопросов: 75 Ответов: 3178
|
Профиль | | #31
|
Добавлено: 05.11.10 18:17
|
ладно, убедили. полез, поискал, нашел статейки, почитал, научился. заняло 15 минут.
- Dim Data As Byte() = New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &HA, &HB, &HC}
-
- ...
-
- Using W = New System.Security.Cryptography.AesManaged, C = W.CreateEncryptor, D = W.CreateDecryptor
- Dim Crypted As Byte() = C.TransformFinalBlock(Data, 0, Data.Length)
- Dim Decrypted As Byte() = D.TransformFinalBlock(Crypted, 0, Crypted.Length)
- End Using
упс, кажется оба шифр в обе стороны занимает всего 4 строчки. невероятно
даже провел небольшую проверку скорости. 10 мегабайт случайных данных шифруются алгоритмом AES за 738 мс, разжимаются за 739 мс.
Ответить
|
Номер ответа: 36 Автор ответа: Алексей
ICQ: нету
Вопросов: 6 Ответов: 42
|
Профиль | | #36
|
Добавлено: 06.11.10 11:17
|
AgentFireтеперь объясняй чё делал.
- Dim Data As Byte() = New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &HA, &HB, &HC}
Первая часть понятна, но почему Byte и что означает запись New Byte() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, &HA, &HB, &HC} , а вот со второй вобще ничё не понял. - Using W = New System.Security.Cryptography.AesManaged, C = W.CreateEncryptor, D = W.CreateDecryptor
- Dim Crypted As Byte() = C.TransformFinalBlock(Data, 0, Data.Length)
- Dim Decrypted As Byte() = D.TransformFinalBlock(Crypted, 0, Crypted.Length)
- End Using
Какие механизмы реализуются???? полез, поискал, нашел статейки Где искал??? я всё излазил, нашел тоько для VB 6.0 в лучшем случае. Если можно точную ссыль.
Ответить
|
Номер ответа: 39 Автор ответа: Artyom
Разработчик
Вопросов: 130 Ответов: 6602
|
Профиль | | #39
|
Добавлено: 06.11.10 16:48
|
AgentFire пишет:
А зачем. ТС совершенно четко выразился что ему нужна простейшая защита, без 128-битных ёмана-мана ключей
Например, затем что по дефолту System.Security.Cryptography.AesManaged инициализируется случайно создаными ключем и вектором инициализации, которые сразу после вызова End Using (т.е. Dispose) безвозвратно теряются. Таким образом, ты получаешь набор зашифрованых данных, которые никогда нельзя зашифровать.
Поэтому необходимо сначала инициализировать AesManaged ключем и вектором инициализации (который при шифровании должен создаваться случайным образом, например, через RNGCryptoServiceProvider). Вектор инициализации записывается вместе с зашифроваными данными, так как он не является сектерным и требуется для расшифровки. Ключ должен храниться в более надежном месте, например, через ProtectedData.
Ответить
|
Страница: 1 | 2 | 3 |
Поиск по форуму