Как сделать пароль в программе на delphi?

Пользователь

от greyson , в категории: Другие , 2 года назад

Как сделать пароль в программе на delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stanford_mosciski , 2 года назад

@greyson 

В Delphi можно создать пароль, используя функцию шифрования. Один из способов - использовать функцию XOR.


Вот пример кода для создания пароля:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
function EncryptString(const S: string): string;
var
  I: Integer;
begin
  Result := S;
  for I := 1 to Length(Result) do
    Result[I] := Char(Byte(Result[I]) xor $FF);
end;

function DecryptString(const S: string): string;
var
  I: Integer;
begin
  Result := S;
  for I := 1 to Length(Result) do
    Result[I] := Char(Byte(Result[I]) xor $FF);
end;


Вы можете зашифровать строку с помощью функции EncryptString, а затем расшифровать с помощью DecryptString.


Однако, этот метод не является очень безопасным, так как легко взломать. Вместо этого рекомендуется использовать стандартные алгоритмы шифрования, такие как AES или RSA.

Пользователь

от raina , год назад

@greyson 

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


Вот пример, как использовать алгоритм шифрования AES с паролем:


1 2 3 4 5 6 7 8 9


uses IdCoder, IdCoder3to4, IdCoderMIME, IdGlobal, IdHash, IdHashMessageDigest, IdHMAC;


function EncryptString(const S: string; const Password: string): string; var Cipher: TIdCipherAES; begin Cipher := TIdCipherAES.Create(nil); try Cipher.CipherMode := cmCBC; Cipher.InitPassword(Password); Result := Cipher.EncodeString(S); finally Cipher.Free; end; end;


function DecryptString(const S: string; const Password: string): string; var Cipher: TIdCipherAES; begin Cipher := TIdCipherAES.Create(nil); try Cipher.CipherMode := cmCBC; Cipher.InitPassword(Password); Result := Cipher.DecodeString(S); finally Cipher.Free; end; end;


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


Кроме алгоритма AES, также можно использовать другие алгоритмы шифрования, такие как RSA, в библиотеке Indy или в других сторонних библиотеках Delphi.