Как использовать шифрование AES-256 в сейфе 3 с помощью delphi

Я скачал Lockbox3 около недели назад, и я не могу его использовать, и я не мог понять демо, потому что это сложно, я не мог получить коды, которые мне нужны, я хотел бы использовать lockbox 3 AES- 256 для шифрования строк в Delphi.


person kero    schedule 26.02.2012    source источник
comment
Что конкретно вы пытаетесь сделать? Что пытались сделать эту работу? Какие сообщения об ошибках вы получили? Вы вряд ли получите голоса или целенаправленный ответ, если не зададите очень четкий, целенаправленный вопрос. Возможно, вы захотите прочитать FAQ по ссылке выше.   -  person Argalatyr    schedule 26.02.2012


Ответы (2)


Имена методов и свойств в значительной степени говорят сами за себя. Вот метод, который шифрует строку, а затем снова расшифровывает ее, предполагая, что вы настроили свойства кодека во время разработки, которые также являются самоописываемыми.

procedure TForm1.actEncryptStringExecute( Sender: TObject );
var
  Plaintext, sReconstructedPlaintext: string;
  base64Ciphertext: ansistring;
begin
sPlainText := 'I love LockBox 3!';
if not InputQuery( 'Plaintext', 'Enter plaintext that you want to encrypt (UTF-16LE encoding):', sPlainText) then exit;
codec.EncryptString( sPlaintext, base64Ciphertext);
ShowMessageFmt('The base64 encoding of the encoded ciphertext is'#13#10+'%s',[base64Ciphertext]);
codec.DecryptString( sReconstructedPlaintext, base64Ciphertext);
ShowMessageFmt('After decryption, this decrypts back to %s',[sReconstructedPlaintext])
end;

Посмотрите еще раз на демонстрационную программу. Обработчик кнопки «Зашифровать» шифрует файл вместо строки. Кроме того, если вы уберете декоративный пух, например, отправку информации в заметку и обработку исключений, если пользователь указал несуществующий файл, это невероятно просто - это в основном сводится к одной строке...

codecMainDemo.EncryptFile( edtPlaintextFile.Text, edtCiphertextFile.Text );

Чтобы зашифровать строку, вы вызываете EncryptString(). Чтобы зашифровать файл, вы вызываете EncryptFile().

Демонстрация показывает настройку, а именно:

  1. Поместите на форму компонент TCryptographicLibrary;
  2. Поместите компонент TCodec на форму;
  3. Выберите предпочитаемый шифр
  4. Выберите предпочитаемый режим цепочки; а также
  5. Установите пароль

и Боб твой дядя!

Дайте мне знать, если у вас возникнут проблемы.

person Sean B. Durkin    schedule 26.02.2012
comment
Я только что установил эти компоненты в XE6, EncryptString требует в качестве третьего параметра TEncoding от Sysutils, что мне с этим делать? - person LinuxSecurityFreak; 18.09.2016
comment
Это зависит от того, какую кодировку строк вы хотите. UTF-8? UTF-16LE? или что-то другое. - person Sean B. Durkin; 19.09.2016
comment
обычная строка ASCII, я понятия не имею, что с ней делать, заранее спасибо - person LinuxSecurityFreak; 19.09.2016
comment
Что такое обычная строка ASCII? Может быть, вы имеете в виду UTF-8? - затем используйте TEncoding.UTF8. - person Sean B. Durkin; 19.09.2016

Шон В вашем примере есть как минимум одна ошибка, если не больше:

var
  Plaintext, sReconstructedPlaintext: string;
  base64Ciphertext: ansistring;
Plaintext should be sPLaintext.

Кроме того, компилятор Delphi Sydney помечает ошибку «Недостаточно фактических параметров» на codec.EncryptString( sPlaintext, base64Ciphertext);

Я думаю, что у дяди Боба был выходной. Это отличная библиотека, но, к сожалению, ее подводит плохая документация. Я проложил себе путь через соответствующие блоки, чтобы добиться некоторого прогресса, но мне жаль, что я должен сделать это, чтобы оценить, хочу ли я его использовать - я пишу учебник для школьного рынка.

person drbond    schedule 22.02.2021