2008-10-10 33 views
32

Có tương đương Windows của /dev/random của Linux không?Tương đương với Windows/dev/random

Câu hỏi này đặc biệt yêu cầu khả năng đọc số ngẫu nhiên từ tệp/thiết bị (tương thích với Unix/Linux), trái ngược với câu hỏi Windows API.

+11

Tôi muốn một người nào đó thực sự đã trả lời câu hỏi đã được hỏi. Có rất nhiều câu trả lời cho câu hỏi chung * làm thế nào tôi có thể tạo ra các số ngẫu nhiên trên Windows *, nhưng đó không phải là câu hỏi này. Câu hỏi này đặc biệt hỏi về '/ dev/random' là một cách để tạo ra các số ngẫu nhiên bằng cách đọc từ một" tập tin ". Điều này thú vị hơn nhiều so với việc tạo ra các số ngẫu nhiên bằng cách gọi một hàm. ** Đây ** là những gì tôi muốn biết. Đối với hồ sơ, nó không hoàn toàn giống nhau, nhưng [có các giải pháp cho Windows và DOS] (https://en.wikipedia.org/wiki//dev/random#Other_operating_systems). – Synetech

+5

Câu hỏi là chủ đề và không phải là câu hỏi cho "công cụ, thư viện hoặc tài nguyên ngoài trang web yêu thích". – kay

+8

Câu hỏi VALF hoàn toàn này hữu ích và KHÔNG là "đề xuất của một công cụ". Một ví dụ khác về mặt tối của S.O. –

Trả lời

1

Liên kết này từ câu trả lời StingyJack là tốt: http://en.wikipedia.org/wiki/CryptGenRandom

Microsoft C++ Visual Studio từ năm 2005 cung cấp rand_s() mà hoạt động trên Windows XP trở lên. Nó dựa trên RtlGenRandom (như là các hàm PRNG của CryptoAPI), hoạt động bên trong của chúng không được công khai. Có vẻ như trong XP có một số điểm yếu đã được sửa chữa.

Cá nhân, tôi sử dụng rand_s() làm nguồn ngẫu nhiên bổ sung để đưa vào PRNG theo lựa chọn của tôi.