可以将密码放在一个*.ini文件中,每次等录时读一下这个文件就可以了!

解决方案 »

  1.   

    可以将密码放在一个*.ini文件中或者放在注册表中或者放在数据库中
      

  2.   

    继续请教各位:如果想放在.ini文件中,又如何放进去呢?谢谢!!
      

  3.   

    写到注册表中
    当然,有自己的加密方式,写到Config.cfg中也可以,反正显示是乱吗的
      

  4.   

    比如你的ini文件为me.ini,内容如下:
    [root]
    my=self在unit中use inifiles
    var
      fini:tinifile;
    初始化:
    fini:=TIniFile.Create(ExtractFilePath(Paramstr(0))+'me.ini');//paramstr(0)返回应用程序所在的路径
    读操作:
    Fini.ReadString('root','my','')
    写操作:
    Fini.WriteString('root','my','self')
      

  5.   

    1 ini
    2 或者放在注册表中3 或者放在数据库中 
      

  6.   

    加密问题:
        假定要保存的是一字符串:str,值为:abc123
      1.加密处理:
         for i:=1 to Length(str) do
           str[i]:=Chr(Ord[str[i]]+1);
       // str变为bcd234
      2.保存
      3.取出时解密:
         for i:=1 to Length(str) do
           str[i]:=Chr(Ord[str[i]]-1);
       // str还原为abc123
    上面就是一个非常简单的加密解密算法,当然只是示例而已!
      
      

  7.   

    我也有个疑问:
    如果config文件被用户删除了,注册表中的也被清除了,程序该怎么处理(很多程序不用安装,与刚拷上去的应用程序的环境是一样的,若当作第一次运行处理那设置登陆密码又有什么用?)?
      

  8.   

       呵呵,我觉得你应该在保存密码到ini文件中去的时候,对密码加密,在取出来的时候在对它解密,然后跟Edit.Text比较,你的问题cobi和zswang(伴水)解释的很清楚。提供一种加密算法
    function Encrypt(Password: String): String;
    var
      Temp: 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;
     上面的密码算法是我自己乱想的,另外 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 ......);在解密的时候也调用这个函数,就行了
          
     
      

  9.   

    上面的password:=Edit1.text去掉,刚才我写的太快,:),笔误