该怎么样在写入文件前先简单加密一下呢?(100分)

  • 主题发起人 主题发起人 konak
  • 开始时间 开始时间
K

konak

Unregistered / Unconfirmed
GUEST, unregistred user!
以下代码是将字符写入a.txt,现在想在写入前先将其内容先加密一下(否则是明文,直接就能看出存的是什么东西了),在读的时候再解密,怎么样才能实现呢?
这个好象是文件流操作 ,加密解密该如何进行呢? 200分相送

if FileExists('c:/a.txt') then
begin
temp:=TFileStream.Create('c:/a.txt',fmOpenWrite);
temp.Seek(0,SoFromEnd);
end else
temp := TFileStream.Create('c:/a.txt',fmCreate);
if(wparam > $2f)and(wparam<$5b) then
begin
c:=chr(wparam);
temp.Write(c,1);


另外,如何取得windiws所在的安装目录呢? 实在是太菜了,哎,,大虾指点一二,再送上50分
 
流的加解密请参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=599716
取得windiws所在的安装目录
var
abc:pchar;
begin
getmem(abc,255);
getsystemdirectory(abc,255);
showmessage(abc);
freemem(abc);
end;
 
可以用DES算法来进行加密
 
给你一个加密方案吧,我觉得你要加密,应该是对正个文件的内容进行加密,而不是对一个个字符加密,你文件里面写的是可见字符,而非二进制字符,所以我觉得你可以用TStringList来替代TFileStream来进行操作文件,因为TStringList也可以读文件和保存文件,而TStringList的操作比对TFileStream的操作更方便些。
因此,一开始用TStringList.LoadFromFile()方法把文件读进来,因为文件内容为加密的,所以现在对TStringList.text进行解密,然后就可以向TStringList中写入明文字符了,最后要保存时,只要把TStringList.text再进行一次加密,然后就可以用SaveToFile方法保存密文了。加密和解密就你自己想用什么方法就什么方法了,如楼主所说的DES算法,有相应的第三方控件支持的。
 
加密与解密要一起的.

可以看一下 base64 ,这个安全强度不高,但方便快速.


DES 可逆吗?
 
DES 当然可逆了
不过建议用3DES了
有好多都可以用 如:DES,3DES,RSA,cost256,idea等太多了
不可逆的有:MD5,MD6,RMD160,SHA1等
控件可以到 DELPHI盒子 里去找
 
另外,如何取得windiws所在的安装目录呢?

function GetWindowsDir: TFileName;
var
WinDir: array [0..MAX_PATH-1] of char;
begin
SetString(Result, WinDir, GetWindowsDirectory(WinDir, MAX_PATH));
if Result = '' then
raise Exception.Create(SysErrorMessage(GetLastError));
end;
 
后退
顶部