用IdBase64Encoder加密的东西,怎么用IdBase64Decoder解密不了?
我写了下列代码,执行时说要解密的字符在table中找不到
codeing table intry not found
miwen:string;//全局变量
procedure TForm1.Button1Click(Sender: TObject);
var
IdBase64Encoder:TIdBase64Encoder;
begin
IdBase64Encoder:=TIdBase64Encoder.Create(self);
IdBase64Encoder.CodeString(edit1.Text);
miwen:=IdBase64Encoder.CompletedInput;
IdBase64Encoder.Destroy;
edit2.Text:=miwen;
end;procedure TForm1.Button2Click(Sender: TObject);
var
myresult:string;
IdBase64Decoder:TIdBase64Decoder;
begin
IdBase64Decoder:=TIdBase64Decoder.Create(self);
IdBase64Decoder.CodeString(miwen);
myresult:=IdBase64Decoder.CompletedInput;
IdBase64Decoder.Destroy;
edit3.Text:=myresult;
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TIdBase64Encoder.Create(nil) do try
        CodeString(Edit1.Text);
        Edit2.Text := CompletedInput;
      finally
        Free;
      end;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      with TIdBase64Decoder.Create(nil) do try
        CodeString(Copy(Edit2.Text, 3, MaxInt)); //关键是加压缩出来的字符前面两个字节是标志,所以要去掉~~
        Edit3.Text := Copy(CompletedInput, 3, MaxInt);
      finally
        Free;
      end;
    end;