您可以在所谓的记录对象中一起使用记录和对象,其优点是可以有效地处理数据,例如一个巨大的整数加密盒,通过记录中的这些对象封装,我们获得了更快的速度和事务:
TKeyObjAB= record
ID:string;
n:TInteger; {the modulus}
phi:TInteger; {Totient phi=(p-1)*(q-1)}
e:TInteger;
d:TInteger; {private key if e relative to phi,
which means that d*e mod phi = 1}
blocksize:integer;
keysize:Integer; {bits in modulus}
benchmark: string; //double;
end;
然后用两个或多个 recobj 实例化它:
var
tAlice:TKeyObjAB;
tBob: TKeyObjAB;
构造函数是一个简单的函数来初始化你的成员:
function Obj_createAB(newid:string;
newkeysize:integer; actor:TKEYObjAB):TKeyObjAB;
begin
with actor do begin
id:=newid;
keysize:=newkeysize;
n:=TInteger.Create(0);
phi:=TInteger.Create(0);
e:=TInteger.create(0);
d:=Tinteger.create(0);
benchmark:= '';
end;
result:= actor;
end;
// invoke instances
talice:= Obj_createAB('Alice', 256, talice)
tbob:= Obj_createAB('Bob', 512, tbob)