DelphiCSPRNG
1.0.0
Delphi 用のクロスプラットフォームの暗号的に安全な擬似乱数ジェネレーター
組み込みの Random よりも信頼性が高く、使いやすいクロスプラットフォームの乱数ジェネレーターが必要でした。モジュール式なので、必要なパーツだけを組み込むことができます。共通のプロバイダー インターフェイスを使用して、各プラットフォームのプラットフォーム セキュア ランダム プロバイダーを利用します。 Win32、Win64、Android64、Linux64 でのみテストしました。
いくつかの基本的なテストとサンプル アプリがあります。フィードバック、問題レポート、プル リクエストを歓迎します。特に Apple ハードウェアでテストしたい場合はそうです。
免責事項:重要な用途にコードを使用する前に、必ずコードを理解してください。私がこれを「暗号的に安全」と呼んでいるからといって、必ずしもそれが安全であること、または暗号化に適していることを意味するわけではありません。
uses CSPRNG, CSPRNG.Interfaces;
// /
var rng: ICSPRNGProvider := GetCSPRNGProvider;
Writeln(rng.GetFloat);
Writeln(rng.GetUInt64);
Writeln(rng.GetBase64);
type
ICSPRNGProvider = interface
// Generates a specified number of cryptographically secure random bytes.
function GetBytes ( const Count: Integer): TBytes;
// Generates a cryptographically secure random unsigned 32-bit integer.
function GetUInt32 ( const max: UInt32 = High(UInt32)): UInt32;
// Generates a cryptographically secure random signed 32-bit integer.
function GetInt32 ( const max: Int32 = High(Int32)): Int32;
// Generates a cryptographically secure random signed 64-bit integer.
function GetInt64 ( const max: Int64 = High(Int64)): Int64;
// Generates a cryptographically secure random unsigned 64-bit integer.
function GetUInt64 ( const max: UInt64 = High(UInt64)): UInt64;
// Generates a cryptographically secure random float between 0 and 1
function GetFloat : Double;
// Generates a BASE64 encoded random string
function GetBase64 ( const len: Integer = 1024 ): String;
end ;
ほとんどの機能は基本実装から得られ、 GetBytes
関数を提供するプラットフォーム固有の実装が含まれます。