最近做个项目:需要对数据进行加密的.开发工具使用delphi6
但是delphi6没有好的加密方法,于是采用微软的Crypt。方案如下:
delphi6调用vc2003写的COM(使用Crypt加密,使用vs.net2003开发Crypt加密很容易)
delphi6调用COM组件需要用到OleVariant变量,于是问题来了。
ole delphi项目中保存二进制字段并没有采用Olevariant的方法,因此这里简介一下他的方法
非常简单:
//save
var
vTempData :OleVariant;
P:Pointer;
with TAdoBlobStream.Create(FieldByName('TemperatureSet') as TBlobField,bmWrite) do
try
vTempData := VarArrayCreate([0,15],varByte);
for i := 0 to 15 do
begin
vTempData[i] := i;
end;
P := VarArrayLock(vTempData);
WriteBuffer(P^,16);
VarArrayUnLock(vTempData);
vTempData := Unassigned;
finally
Free;
end;
//read 相似
with TAdoBlobStream.Create(FieldByName('TemperatureSet') as TBloBField,bmRead) do
try
if Size > 0 then
begin
vTempData := VarArrayCreate([0,Size - 1],varByte);
P := VarArrayLock(vTempData);
ReadBuffer(P^,Size);
VarArrayUnLock(vTempData);
for i :=0 to Size -1 do
begin
s := s + IntToHex(vTempdata[i],2);
end;
Memo1.Lines.Add(s);
end;
finally
free;
end;
希望用的兄弟有个捷径