मैं भी OpenSSL libraries सुझाव देने के लिए जा रहा था:
बस इकाई DECRandom
(और शायद DECUtils
) और इस तरह इसका इस्तेमाल (इस उदाहरण IInteger
का उपयोग करता है, लेकिन यह अनिवार्य नहीं है) शामिल हैं। और आपको एन्क्रिप्शन, एसएसएल, हैशिंग इत्यादि भी शामिल हैं।
इंडी ने कई शीर्षकों को परिवर्तित कर दिया है और इसमें आरएND_स्क्रीन शामिल है - लेकिन यूआई के बिना प्रोग्रामों पर इसका उपयोग नहीं किया जा सकता है। दुर्भाग्य से यह अधिकांश RAND_ * वाले लोगों को याद करता है - लेकिन वे आयात और उपयोग करने में बहुत आसान हैं।
जैसे:
function RAND_load_file(const filename: PAnsiChar; max_bytes: longint): integer; cdecl; external 'libeay32.dll';
function RAND_bytes(buf: PByte; num: integer): integer; cdecl; external 'libeay32.dll';
function RAND_pseudo_bytes(buf: PByte; num: integer): integer; cdecl; external 'libeay32.dll';
तो कोड में
:
RAND_load_file(PAnsiChar(AnsiString('name-of-seed-file')), 512);
//or
//RAND_screen;
...
...
const
PKCS5_SALT_LEN = 8;
var
salt: TBytes;
begin
SetLength(salt, PKCS5_SALT_LEN);
RAND_pseudo_bytes(@salt[0], PKCS5_SALT_LEN);
...
end;
वही बीज मुद्दों के रूप में अभी भी विचार-विमर्श किया ज़ाहिर है, लागू होते हैं।
http://blog.synopse.info/post/AES-CSPRNG देखें - यह एक मजबूत एईएस -256 आधारित क्रिप्टोग्राफिक रूप से सुरक्षित छद्म-यादृच्छिक संख्या जनरेटर है, क्रिप्टोएपी ब्लैक बॉक्स की तुलना में उच्च सुरक्षा के साथ (यह केवल CryptGenRandom का उपयोग करता है एंट्रॉपी स्रोत के रूप में)। –