加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 密码加密

发布时间:2020-12-15 09:09:28 所属栏目:大数据 来源:网络整理
导读:我设法使用以下代码对输入的密码进行简单加密,然后在标签标题中显示加密密码, procedure TfrmLogin.edtAddPasswordClick(Sender: TObject);var NormalPassword,EncryptedPassword: string; PasswordChar: Char; EncryptedCharValue: string; CharPtr: Intege
我设法使用以下代码对输入的密码进行简单加密,然后在标签标题中显示加密密码,

procedure TfrmLogin.edtAddPasswordClick(Sender: TObject);
var
  NormalPassword,EncryptedPassword: string;
  PasswordChar: Char;
  EncryptedCharValue: string;
  CharPtr: Integer;
  Ptr,n: Integer;
begin
  NormalPassword := Edit1.text;
  EncryptedPassword := '';
  for CharPtr := 1 to Length(NormalPassword) do
  begin
    PasswordChar := NormalPassword[CharPtr];
    EncryptedCharValue := IntToStr (Ord(PasswordChar) * 5 + 14);
    EncryptedPassword := EncryptedPassword + EncryptedCharValue;
    Label1.Caption := EncryptedPassword;
  end;
end;

问题是我想将label1.caption中显示的加密密码转换回其原始形式,点击另一个按钮,我无法弄清楚如何做到这一点.有什么建议?

解决方法

不要创建自己的算法来散列(或加密)密码,而是尝试使用经过良好测试的可靠算法,如SHA1,MD5等.

回到你的问题,将加密值转换为原始值,你只需要反转你的算法,试试这个样本.

var
  NormalPassword,EncryptedPassword: String;
  PasswordChar : char;
  EncryptedCharValue : String;
  CharPtr : Integer;
begin
  NormalPassword    :='';
  EncryptedPassword := Label1.Caption; //here is stored the encrypted password
  CharPtr := 1;
  while CharPtr< length(EncryptedPassword) do
    Begin
      EncryptedCharValue:=Copy(EncryptedPassword,CharPtr,3);
      Inc(CharPtr,3);
      PasswordChar     := Chr((StrToint(EncryptedCharValue)-14) div 5);
      NormalPassword  :=NormalPassword+ PasswordChar;
    end;
    Label2.Caption := NormalPassword; 
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读