Значение ошибки TSimpleCodec.Begin_EncryptMemory — неправильный режим

Я использую Delphi XE6 и LockBox 3.4.3 для запуска кода actEncryptStringExecute. Этот код был опубликован как ответ на вопрос «Как использовать шифрование AES-256 в сейфе 3 с помощью Delphi». Я получаю сообщение об ошибке TSimpleCodec.Begin_EncryptMemory — неправильный режим.

Есть еще один вопрос «TSimpleCodec.Begin_EncryptMemory — неправильный режим», где ответ «Вам не нужно делать это, если вы настраиваете кодек со значениями времени разработки. Это намного проще сделать во время разработки. Просто установите опубликованные свойства по мере необходимости».

TCodec properties are :-
AdvancedOptions2 = []
AsymetricKeySizeInBits = 1024
ChainMode = ECB (with block padding)
Cipher = Base64
CryptoLibrary = CryptographicLibrary1
Encoding = (TEncoding)

TCryptographicLibrary properties are :-
CustomCipher = (TCustomStreamCipher)
Name = CryptographicLibrary1
ParentLibrary = 

Код: -

var
base64CipherText          : String;
PlainTextStr              : String;
ReconstructedPlainTextStr : String;


procedure TForm1.btnEncryptClick(Sender: TObject);
begin
PlainTextStr := edtPlainText.Text;
Codec1.EncryptString(PlainTextStr, base64CipherText, TEncoding.Unicode);
lblEncrypted.Caption := base64CipherText;

Codec1.DecryptString(ReconstructedPlainTextStr, base64CipherText, TEncoding.Unicode);
lblReconstructed.Caption := base64CipherText;
end;

Что мне нужно изменить во время разработки, чтобы этот простейший пример заработал?


person Peter G Evans    schedule 10.07.2014    source источник
comment
Вы ссылаетесь на процедуру actEncryptStringExecute(), но не предоставляете для нее листинга (если только она не совпадает с btnEncryptClick()). Просьба уточнить. Вы ссылаетесь на другой вопрос, но не даете ссылку на него. Не могли бы вы дать ссылку на него, пожалуйста?   -  person Sean B. Durkin    schedule 10.07.2014
comment
Надеюсь, это ссылка [ссылка] (stackoverflow.com/questions/9449613/)   -  person Peter G Evans    schedule 10.07.2014
comment
Похоже, вы не установили пароль.   -  person Sean B. Durkin    schedule 10.07.2014
comment
Я думаю, что версия наконечника LB3 (через SVN) серьезно нарушена. Я чиню это. Но у меня нет полномочий вносить изменения, поэтому я, вероятно, разветвлю проект и внесу исправления в разветвление.   -  person Sean B. Durkin    schedule 10.07.2014
comment
Интересно, что вы упомянули пароль. Ни один из компонентов, для которых я перечисляю свойства, не имеет свойства Password, которое я могу видеть во время разработки. Я ценю, что у вас есть исправление. Не могли бы вы опубликовать здесь, когда исправление будет доступно?   -  person Peter G Evans    schedule 10.07.2014
comment
Свойство пароля не публикуется, а устанавливается во время выполнения. Это обдуманное дизайнерское решение. Если пароль был опубликован и установлен во время разработки, люди могли увидеть ваш пароль, просто прочитав файл DFM. Таким образом, «пароль» является исключением из правила — он должен быть только во время выполнения. Я, вероятно, выложу исправление в понедельник. Я надеюсь, что это достаточно рано для вас.   -  person Sean B. Durkin    schedule 10.07.2014
comment
Это было бы фантастически.   -  person Peter G Evans    schedule 10.07.2014
comment
Я полагаю, что вам не нужно помещать компоненты в форму. Это чище сделать в коде.   -  person David Heffernan    schedule 11.07.2014
comment
Готово: code.google.com/p/tplockbox.   -  person Sean B. Durkin    schedule 11.07.2014
comment
Красиво — теперь я могу вызвать подпрограмму EncryptString в вашей новой версии — с ожидаемыми результатами. Спасибо.   -  person Peter G Evans    schedule 15.07.2014