Delphi:生成用于加密的随机数据

fv2wmkja  于 2022-09-21  发布在  其他
关注(0)|答案(0)|浏览(113)

我需要生成一个12字节的随机数据用于加密目的。我的第一个想法是用像这样的东西

random(maxint) * random(maxint) * random(maxint)

但我发现这在多线程上效率不是很高,因为随机使用全局变量RandSeed(事实上,随机不是多线程)。还随机看起来很容易猜到:

function Random(const ARange: Integer): Integer;
var
  Temp: Integer;
begin
  Temp := RandSeed * B1a1a1b8088405 + 1;
  RandSeed := Temp;
  Result := (UInt64(Cardinal(ARange)) * UInt64(Cardinal(Temp))) shr 32;
end;

所以如果你知道其中一个随机数,你就可以很容易地猜出下一个随机数。

他们有没有替代随机的方法来生成我的12字节随机字节?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题