Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2014, 11:10   #21
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Человек_Борща, пока в реестре ничего нет, алгоритм DES выдает ошибку
P.S. в реестре пароль Edit1
beegl вне форума Ответить с цитированием
Старый 14.03.2014, 11:13   #22
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
алгоритм DES выдает ошибку
Показывайте код и как использовали.
Человек_Борща вне форума Ответить с цитированием
Старый 14.03.2014, 11:47   #23
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Человек_Борща, см. 1-й пост ссылка

Код:
uses
  CnDES;

procedure TForm1.btnDesCryptClick(Sender: TObject);
begin
  edtCode.Text := DESEncryptStrToHex(edt1.Text, edtKey.Text);
end;

procedure TForm1.btnDesDecryptClick(Sender: TObject);
begin
  edtOrigin.Text := DESDecryptStrFromHex(edtCode.Text, edtKey.Text);
end;


Код:
unit FxBase64;

interface

const
  Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/';

function Encode64(S: widestring): widestring;
function Decode64(S: widestring): widestring;

implementation

//==========================================================
function Encode64(S: widestring): widestring;
var
  i: Integer;
  a: Integer;
  x: Integer;
  b: Integer;
begin
  Result := '';
  a := 0;
  b := 0;
  for i := 1 to Length(s) do
  begin
    x := Ord(s[i]);
    b := b * 256 + x;
    a := a + 8;
    while a >= 6 do
    begin
      a := a - 6;
      x := b div (1 shl a);
      b := b mod (1 shl a);
      Result := Result + Codes64[x + 1];
    end;
  end;
  if a > 0 then
  begin
    x := b shl (6 - a);
    Result := Result + Codes64[x + 1];
  end;
end;

//==========================================================
function Decode64(S: widestring): widestring;
var
  i: Integer;
  a: Integer;
  x: Integer;
  b: Integer;
begin
  Result := '';
  a := 0;
  b := 0;
  for i := 1 to Length(s) do
  begin
    x := Pos(s[i], codes64) - 1;
    if x >= 0 then
    begin
      b := b * 64 + x;
      a := a + 6;
      if a >= 8 then
      begin
        a := a - 8;
        x := b shr a;
        b := b mod (1 shl a);
        x := x mod 256;
        Result := Result + chr(x);
      end;
    end
    else
      Exit;
  end;
end;

end.

Последний раз редактировалось beegl; 14.03.2014 в 11:58.
beegl вне форума Ответить с цитированием
Старый 14.03.2014, 12:00   #24
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Проверяте наличие пустой строки.
Причем тут base64 к DES?
Человек_Борща вне форума Ответить с цитированием
Старый 14.03.2014, 12:19   #25
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Лампочка

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Проверяте наличие пустой строки.
Причем тут base64 к DES?
примерно так проверять?? :

Код:
procedure TIntertelecomForm.IntertelecomLoad;
var
   RegIniFile:TRegIniFile;
   s:String;
begin
 RegIniFile:=TRegIniFile.Create('Software');
 RegIniFile.OpenKey('Intertelecom Tools',true);
 RegIniFile.OpenKey('Intertelecom Tools-Open',true);
 begin
 CheckBox1.Checked := RegIniFile.ReadBool('Intertelecom','AutoBalans', False);
 AutorunIntertelecom.Checked := RegIniFile.ReadBool('Intertelecom','AutorunIntertelecomFx', False);
 HintCheckBox.Checked := RegIniFile.ReadBool('Intertelecom','HintCheckBox', True);
 OnTopCheckBoxFx.Checked := RegIniFile.ReadBool('Intertelecom','OnTopCheckBoxFx-RegSave', False);
 EditUsername.Text := RegIniFile.ReadString('Intertelecom','EditUsernameFx',EditUsername.Text);
 cbbConnections.ItemIndex := RegIniFile.ReadInteger('Intertelecom','ConnectionsItemIndex',cbbConnections.ItemIndex);
 if EditPassword.Text <> '' then
 begin
 EditPassword.Text := RegIniFile.ReadString('Intertelecom','EditPasswordFx',EditPassword.Text);
 end;
 RegIniFile.Free;
end;
end;
beegl вне форума Ответить с цитированием
Старый 14.03.2014, 12:30   #26
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Нет, проверять то, что читается из реестра.
Человек_Борща вне форума Ответить с цитированием
Старый 14.03.2014, 12:33   #27
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Нет, проверять то, что читается из реестра.
а как оформить, чтоб с каждым запуском и закрытии по новому не шифровался пароль, а то получается с каждым запуском/закрытием новый пароль)?
beegl вне форума Ответить с цитированием
Старый 14.03.2014, 15:54   #28
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

хранить где-то ключ.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Сшить 3 куска кода (WinApi) SartAlfard Помощь студентам 0 17.10.2011 19:11
Извлечение из HTML страницы куска кода temkas C# (си шарп) 2 08.08.2011 22:16
Шифрование куска кода программы Crystallon Общие вопросы Delphi 6 06.05.2011 11:29
Шифрование куска кода программы Crystallon Фриланс 0 05.05.2011 15:55
Разбор куска кода. Alexcomeback Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 05.04.2011 18:14