ما هو أفضل بديل لنظام التشغيل Windows Rand_s في Linux/POSIX؟

StackOverflow https://stackoverflow.com/questions/120206

سؤال

المشكلة لا تتعلق بالعشوائية بحد ذاتها (لدينا راند)، ولكن في PRNG الآمنة تشفيرًا.ما الذي يمكن استخدامه على Linux، أو POSIX بشكل مثالي؟هل لدى NSS شيء مفيد؟

إيضاح:أنا أعرف عن /dev/random، ولكن قد ينفد من مجموعة الإنتروبيا.ولست متأكدًا مما إذا كان /dev/urandom مضمونًا ليكون آمنًا من الناحية المشفرة.

هل كانت مفيدة؟

المحلول

يستخدم /dev/random (يتطلب إدخال المستخدم، على سبيل المثال، حركات الماوس) أو /dev/urandom.يحتوي الأخير على مجمع إنتروبيا ولا يتطلب أي إدخال من المستخدم إلا إذا كان المجمع فارغًا.

يمكنك القراءة من المسبح مثل هذا:

char buf[100];
FILE *fp;
if (fp = fopen("/dev/urandom", "r")) {
    fread(&buf, sizeof(char), 100, fp);
    fclose(fp);
}

أو شيء من هذا القبيل.

نصائح أخرى

من ويكيبيديا (الخط المائل الخاص بي):

النظير لـ /dev/random هو /dev/urandom ("المصدر العشوائي" غير المؤمن) الذي يعيد استخدام التجمع الداخلي لإنتاج المزيد من البتات العشوائية الزائفة.هذا يعني أن المكالمة لن يتم حظرها، ولكن قد يحتوي الإخراج على إنتروبيا أقل من القراءة المقابلة من /dev/random.ال نية هو بمثابة مولد أرقام عشوائية زائفة آمن تشفيريا.يمكن استخدام هذا للتطبيقات الأقل أمانًا.

ال /dev/random يهدف الجهاز إلى أن يكون مصدرًا للبتات الآمنة تشفيرًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top