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;
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;
解决方案 »
- 如何把doc或者rtf文档保存到SQL SERVER数据库的varbinary字段?
- 如何发送二进制数据?谢谢
- 请问如何把符合IEEE-754标准的十六进制数转换为浮点数?
- 如何加载第三方控件
- 数据库打印问题
- 一个播放flash让它可以自动播放及暂停的问题,懒得自己捉摸的,特来送分。
- 在d6中, toolbar 中toolbutton 的menuitem屬性與 mainmenu 連接過後, 為什麼mainmenu還會顯示在form上呀!
- 怎么样获取断号!
- 超级菜鸟问题
- Tsplitler如何使用!!!!
- 在win98下安装Delphi6时的问题,急!!
- to urchinjj(懒刺猬) “我来做你的师傅吧!”//zswang
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中很不安全
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;
比如 S:=Chr(Ord(Password[I]) xor Ord(Encryptstr[I])- Shl(EncryptStr[I]) and
Ord(...) or Byte ......);在解密的时候也调用这个函数,就行了
RegFile: TReginifile;
begin
RegFile:= TRegIniFile.Create;
RegFile.OpenKey('KeyValue',true);
RegFile.ReadString(...);
end;帮助里面都有
解密一个密码,这样调用,首先从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;