uses
  IniFiles;procedure TForm1.Button1Click(Sender: TObject);
begin
  with TIniFile.Create('C:\Temp.ini') do try
    if Edit1.Text <> ReadString('User', 'Password', '') then
      ShowMessage('口令放在ini中不安全');
  finally
    Free;
  end;
end;

解决方案 »

  1.   

    uses
      IniFiles;procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TIniFile.Create('C:\Temp.ini') do try
        if Edit1.Text <> ReadString('User', 'Password', '') then
          ShowMessage('口令放在ini中不安全');
      finally
        Free;
      end;
    end;用上面的方法读取ini文件的内容,那你的ini文件必须要这样写:[user]
    password = 123;ReadString('User', 'Password', '') 中,最后一个空格的地方代表默认值,如果password没有值,取会的是空值。
    把密码不加密的写在ini中很不安全
      

  2.   

    完全同意楼上,建议对ini文件进行加密!
      

  3.   

    VC写注册表和INI的区别只是提前调用一下Register函数(名字可能记错)就可以了,Delphi怎样写注册表。另:把明文密码放在注册表里安全吗?
      

  4.   

        呵呵,我觉得你应该在保存密码到ini文件中去的时候,对密码加密,在取出来的时候在对它解密,然后跟Edit.Text比较,你的问题cobi和zswang(伴水)解释的很清楚。提供一种加密算法
    function Encrypt(Password: String): String;
    var
      Temp,Password: String;
      S: String;
      Len: Integer;
      I: Integer;
    const
      EncryptStr='*&1243jghd{>?\^$,777,~';//校验密码,可以自己随便定义
    begin
      Temp:= '';
      Password:= Edit1.Text;
      Len:= length(Password);
      for I:=1 to Len do
        begin
          S:= Chr(Ord(Password[I]) xor Ord(Encryptstr[I]));
          Temp:= Temp+S;
        end;
      Result:=Temp;
    end;
      

  5.   

    上面的密码算法是我自己乱想的,另外 S:=Chr(Ord(Password[I]) xor Ord(Encryptstr[I]));这一句你也可以自己定义,我是为了方便才这样写的,你可以把它定义为很复杂,
    比如 S:=Chr(Ord(Password[I]) xor Ord(Encryptstr[I])- Shl(EncryptStr[I]) and 
      Ord(...) or Byte ......);在解密的时候也调用这个函数,就行了
          
          
      

  6.   

    962veiri(风尘旅人):加密后如何解密啊!请提供解密算法啊
      

  7.   

    写注册表一样的,跟ini文件var
      RegFile: TReginifile;
    begin
      RegFile:= TRegIniFile.Create;
      RegFile.OpenKey('KeyValue',true);
      RegFile.ReadString(...);
    end;帮助里面都有
      

  8.   

    特此校正,上面的函数参数 Password应该改一下。:),刚才没注意,参数同名了,呵呵,你要
    解密一个密码,这样调用,首先从ini文件里面读到加密过的密码,然后把它作为Password传到
    加密函数就可以了
       如下:
      begin
        with TIniFile.Create('C:\Temp.ini') do 
        try
          if Edit1.Text <> Encrypt(ReadString('User', 'Password', '')) then
            ShowMessage('你的密嘛输入不正确,请重新输入')
          else ShowMessage('验证通过');
        finally
          Free;
        end;