Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Длина  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Есть 2 поля varchar(max) и varchar(100), необходимо зашифровать их и поместить зашифрованные данные в поля varbinary(max) и varbinary(100) .

+ шифруется так

  public static byte[] EncryptData(string data, string keyFile)
        {
            // Convert string data to byte array
            byte[] ClearData = Encoding.UTF8.GetBytes(data);

            // Now Create the algorithm
            SymmetricAlgorithm Algorithm = SymmetricAlgorithm.Create(AlgorithmName);
            ReadKey(Algorithm, keyFile);

            // Encrypt information
            MemoryStream Target = new MemoryStream();

            // Append IV
            Algorithm.GenerateIV();
            Target.Write(Algorithm.IV, 0, Algorithm.IV.Length);

            // Encrypt actual data
            CryptoStream cs = new CryptoStream(Target, Algorithm.CreateEncryptor(), CryptoStreamMode.Write);
            cs.Write(ClearData, 0, ClearData.Length);
            cs.FlushFinalBlock();

            // Output the bytes of the encrypted array to the textbox
            return Target.ToArray();
        }





вопрос
varchar(max) = varbinary(max)
varchar(100) = varbinary(100) ? или нужно размер varbinary корректировать ?
31 янв 12, 01:41    [12000365]     Ответить | Цитировать Сообщить модератору
 Re: Длина  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Отвечу сам да нужно на рис. пример такого шифрования для строки "Усс (Грабовська,Задорожна,Приходько)".


Тогда будет другой вопросы
1. На сколько увеличить varchar(100) что бы не было подобных ошибок может сразу до varbinary(max) ?
2. правильно ли понимаю что varchar(max) по любому поместиться в varbinary(max) ?

К сообщению приложен файл. Размер - 16Kb
31 янв 12, 02:13    [12000397]     Ответить | Цитировать Сообщить модератору
 Re: Длина  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Andrey1306
Тогда будет другой вопросы
1. На сколько увеличить varchar(100) что бы не было подобных ошибок может сразу до varbinary(max) ?


Кратно размеру блока блочного алгоритма шифрования, в предложенной схеме не хватает проверки подлинности.
31 янв 12, 06:56    [12000500]     Ответить | Цитировать Сообщить модератору
 Re: Длина  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Ken@t,
Спасибо за пояснения
Шифровал с помощью Rijndael (придется заменить на AES).

Key Size = 256 bits, Block Size (bits) вроде бы 128 бит.

Не подскажите как посчитать длину поля varchar(10) при таком алгоритме шифрования ?
и не совсем понятно что вы имеете ввиду о проверке подлинности (проверка подлинности чего , ключа ?)
31 янв 12, 11:51    [12002035]     Ответить | Цитировать Сообщить модератору
 Re: Длина  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Andrey1306
Ken@t,
Спасибо за пояснения
Шифровал с помощью Rijndael (придется заменить на AES).

Key Size = 256 bits, Block Size (bits) вроде бы 128 бит.

Не подскажите как посчитать длину поля varchar(10) при таком алгоритме шифрования ?
и не совсем понятно что вы имеете ввиду о проверке подлинности (проверка подлинности чего , ключа ?)


Математику не изучали ? размер блока 16 байт, вот кратно всё 16 0-15 =>16 , 16-31 => 32.

Проверка подлинности => подлинно ли данное зашифрованное значение для текущей строки БД.
Допустим в колонке заширована должность ( ген дир ) , злоумышленник может не знать ключа, но может скопировать это значение Васе. В вашем случае дешифровав значение колонки у Васи - должность гендира.

Необходимость шифрования данных на клиенте / сервере, проверка подлинности, хранения ключей зависит от предметной области. Но то , что по безопасности и шифорванию у вас лакуны в знаниях - очивидно, читайте соответсвующую теорию перед архитекторным решением.
31 янв 12, 12:02    [12002145]     Ответить | Цитировать Сообщить модератору
 Re: Длина  [new]
Andrey1306
Member

Откуда: Киев
Сообщений: 2611
Ken@t,
Спасибо, разобрался.
Не спорю , шифрованием не занимался , вот и пытаюсь разобраться.
31 янв 12, 12:24    [12002368]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить