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
기능을 제공하는 플랫폼별 구현과 함께 기본 구현에서 나옵니다.