CnPack Forum


 
Subject: DESEncryptStrToHex算法同1个字符串返回值的值不一样
wfymqj
灌水科科长
Rank: 3Rank: 3



UID 1023
Digest Posts 0
Credits 178
Posts 70
点点分 178
Reading Access 10
Registered 2005-9-6
Location 湖北
Status Offline
Post at 2020-7-22 15:28  Profile | Blog | P.M. 
DESEncryptStrToHex算法同1个字符串返回值的值不一样

DESEncryptStrToHex算法同1个字符串,多次调用返回值的值不一样

?CnDES.pas文件的修改日期为:2020?年?4?月?1?日,??14:46:10(github上最新版本)
Embarcadero? Delphi 10.3 Version 26.0.36039.7899 (Delphi10.3.3 )

现像描述:
1.Form上放置Edit1、Button1、Memo1三个控件。
2.Button1Click中调用DESEncryptStrToHex计算。
3.DESEncryptStrToHex的参数说明:Str=‘’;Key = '{F59DE24F-E882-4117-A46E-B474DA65AB11}'。
4.返回值如下:(PW为参数Str;AESKey为参数Key;sOpPW为函数返回值)
-----------------------------------按Button1前,焦点在Edit1
PW:
AESKey:{F59DE24F-E882-4117-A46E-B474DA65AB11}
sOpPW:904E5A043CAA4800
-----------------------------------按Button1前,焦点在Button1
PW:
AESKey:{F59DE24F-E882-4117-A46E-B474DA65AB11}
sOpPW:500057003A000D00
-----------------------------------按Button1前,焦点在Memo1
PW:
AESKey:{F59DE24F-E882-4117-A46E-B474DA65AB11}
sOpPW:60D558043CAA4800

上面就得到了3个不一样的返回值。


下面为完整的pas文件内容:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses CnDES;

const
  AESKey = '{F59DE24F-E882-4117-A46E-B474DA65AB11}';

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  sOpPW,pw:AnsiString;
begin
  //pw    := Trim(Edit1.Text);
  pw := '';
  sOpPW := DESEncryptStrToHex(pw,AESKey);
  Memo1.Lines.Append('-----------------------------------');
  Memo1.Lines.Append('PW:'+Trim(Edit1.Text));
  Memo1.Lines.Append('AESKey:'+AESKey);
  Memo1.Lines.Append('sOpPW:'+sOpPW);
end;

end.

[ 本帖最后由 wfymqj 于 2020-7-22 15:36 编辑 ]
Top
wfymqj
灌水科科长
Rank: 3Rank: 3



UID 1023
Digest Posts 0
Credits 178
Posts 70
点点分 178
Reading Access 10
Registered 2005-9-6
Location 湖北
Status Offline
Post at 2020-7-22 15:52  Profile | Blog | P.M. 
补充说明:
function DESEncryptStrToHex(const Str, Key: AnsiString): AnsiString;
这个函数,以前的版本Str=''时,函数返回的结果Result='';现在不是了。

我是在Delphi10.3.3 Win32环境下测试的。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6750
Posts 3551
点点分 6750
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2022-8-13 09:32  Profile | Blog | P.M. 
目测针对空字符串应该返回空,原始代码中处理有误,导致出现随机内容,已修复。
Top
 




All times are GMT++8, the time now is 2024-3-29 23:27

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009522 second(s), 8 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP