Как я могу использовать Blowfish от BouncyCastle, не требуя блоков по 8 байт?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу использовать Blowfish от BouncyCastle, не требуя блоков по 8 байт?

Сообщение Anonymous »

В Delphi и MyDAC, и LockBox3 позволяют шифровать данные с помощью Blowfish без заполнения (в результате один символ шифруется в один байт).
Эти данные уже существуют, и теперь мне нужно иметь возможность читать/ напишите его с C # с помощью BouncyCastle, но при попытке я сталкиваюсь с исключениями длины данных. Что мне нужно использовать, чтобы разрешить передачу такого рода данных?
Ссылка на то, как я это делаю с BouncyCastle:

Код: Выделить всё

            var cipher = CipherUtilities.GetCipher("Blowfish/CBC/NoPadding");
cipher.Init(true, new ParametersWithIV(new KeyParameter(key), new byte[8]));
byte[] encryptedData = cipher.DoFinal(Encoding.UTF8.GetBytes(DATA));
Ссылка на то, как я это делаю с MyDAC:

Код: Выделить всё

  table.Encryption.Encryptor := TMyEncryptor.Create(nil);
table.Encryption.Encryptor.DataHeader := ehNone;
table.Encryption.Encryptor.SetKey(keyBytes, 0, 32);
table.Encryption.Fields := 'Name';
// Insert a row with DATA in the Name
Ссылка на то, как я это делаю с помощью LockBox3:

Код: Выделить всё

  Codec := TCodec.Create(nil);
Codec.CryptoLibrary := TCryptographicLibrary.Create(nil);
Codec.StreamCipherId := BlockCipher_ProgId;
Codec.BlockCipherId := Blowfish_ProgId;
Codec.ChainModeId := CBC_ProgId;

setIV := TIVZero.Create(); // This sets the IV to all zeros
Codec.OnSetIV := setIV.SetIV;

SetLength(LBKeyBytes, 34);
Move(keyBytes[0], LBKeyBytes[1], 32);
LBKeyBytes[0] := 32; // Length of the key
LBKeyBytes[33] := 0; // Does the key contain the stores
Codec.InitFromStream(TBytesStream.Create(LBKeyBytes));

Codec.EncryptString(DATA, outputText, TEncoding.UTF8);
Все эти реализации дают одинаковый вывод, когда DATA = «ABCDEFGH», а вывод MyDAC и LockBox3 аналогичен, когда он зашифрован только «A», но я не могу заставить это работать с Надувной замок. Существуют ли другие известные библиотеки шифрования для C#, которые я мог бы попробовать?
Отредактируйте, чтобы добавить: я не хотел реализовывать подобные вещи. Мне просто не терпится с этим справиться.

Подробнее здесь: https://stackoverflow.com/questions/790 ... tes-blocks
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»