如何对一个文件进行二进制加密解密??? ( 积分: 50 )

  • 主题发起人 主题发起人 mazheng
  • 开始时间 开始时间
M

mazheng

Unregistered / Unconfirmed
GUEST, unregistred user!
用户输入一个字符串,作为秘要 对一个文件进行二进制加密解密????
 
xor 就行了。
 
比如输入一个16位长的密钥,应该如何对一个二进制文件每一位字符加密、解密??
 
up 各位帮帮忙啊
 
用TFileStream可以实现文件的读写,用XOR方式即可实现加解密。

下面是最简单的XOR字符串加解密的函数(加解密都用它的):
function StrXor(const SrcStr,KeyStr:String):String;
var
i,n:Integer;
begin
Result:=SrcStr;
//异或操作的长度为两个字符串中短的那个的长度,以免发生越界
if Length(SrcStr)>Length(KeyStr) then
n:=Length(KeyStr)
else
n:=Length(SrcStr);
for i:=1 to n do //xor
Byte(Result):=Byte(SrcStr) xor Byte(KeyStr);
end;

使用例子:
procedure TForm1.Button4Click(Sender: TObject);
var
mstr:String;
begin
mstr:=StrXor('user','name');
Caption:=StrXor(mstr,'name');
end


将文件利用TFileStream读出来,然后一段一段的转为String,利用函数和Key加密,存到
目标TFileStream中,直到文件结束——搞定。
可以参考帖子: http://www.delphibbs.com/delphibbs/dispq.asp?lid=286892
 
如何用TFileStream读出来,然后一段一段的转为String??
 
用TFileStream,想怎么加密都行。找一个合适的算法就行。
 
谢谢,学习
 
后退
顶部