Viết / dev / ngẫu nhiên để tập tin?


10

Nếu bạn chạy như sau, điều gì sẽ xảy ra?

cat /dev/random > ~/randomFile # don't run

Nó sẽ được viết cho đến khi ổ đĩa hết dung lượng, hoặc hệ thống sẽ gặp vấn đề với điều này và dừng nó (như với một vòng lặp symlink vô hạn)?


4
Tôi chỉ muốn thêm rằng việc ghép ngẫu nhiên vào các thiết bị có giá trị một vài giờ vui vẻ trong tuổi trẻ của tôi. Bộ đệm khung và card âm thanh dẫn đến tiếng ồn và ổ đĩa yêu cầu tôi thực hiện định dạng lại ở mức độ thấp ... thời gian tốt.
Bob Roberts

OT: 'thực thi / dev / dsp? nghe có vẻ vui '
sendmoreinfo

@BobRoberts Tôi có những cuộc phiêu lưu tương tự, với kết quả tương tự. Tôi cũng đã từng sử dụng ssh vào các máy trạm linux của đồng nghiệp và chuyển âm DTMF của loa sang loa bên trong, sau đó phát một âm báo bận, vì vậy có vẻ như PC của họ đang cố gắng FAX một cái gì đó. Ah, thời gian tốt.
Tim Kennedy

@TimKennedy làm thế nào để bạn làm điều đó? Có một / dev / ice cho jack âm thanh 30 mm không?
tkbx

@tkbx tốt, tôi đang hẹn hò với chính mình, nhưng vào ngày trước bạn có thể chuyển một tập tin thành / dev / audio và nếu đó là một tập tin âm thanh (.wav) thì nó sẽ được phát.
Tim Kennedy

Câu trả lời:


22

Nó ghi cho đến khi đĩa đầy (thường vẫn còn một khoảng trống dành cho người dùng root). Nhưng khi nhóm dữ liệu ngẫu nhiên bị hạn chế, điều này có thể mất một lúc.

Nếu bạn cần một lượng dữ liệu ngẫu nhiên nhất định, hãy sử dụng dd. Đối với 1MB:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1M count=1

Các khả năng khác được đề cập trong câu trả lời cho một câu hỏi liên quan .

Tuy nhiên, trong hầu hết các trường hợp , tốt hơn là sử dụng /dev/urandomthay thế. Nó không chặn nếu kernel nghĩ rằng nó thoát khỏi entropy. Để hiểu rõ hơn, bạn cũng có thể đọc những câu chuyện thần thoại về / dev / urandom .

Cài đặt đã tăng tốc độ /dev/randomvà cũng cung cấp nhiều entropy hơn /dev/urandom.

EDIT : ddcần fullblocktùy chọn như / dev / ngẫu nhiên (ngược lại /dev/urandom) có thể trả về các khối không hoàn chỉnh nếu nhóm entropy trống.

Nếu ddđơn vị của bạn không hỗ trợ, hãy viết chúng ra:

dd if=/dev/random iflag=fullblock of=$HOME/randomFile bs=1048576 count=1

7
100 MiB dữ liệu ngẫu nhiên chất lượng cao hơi nhiều ... bạn nên lấy một vài byte để tạo một số trình tạo số ngẫu nhiên giả chất lượng cao, như twister Mersenne. Nếu ứng dụng là quan trọng (theo nghĩa mật mã), bạn phải đi và đọc về vấn đề này, và có thể thuê một chuyên gia.
vonbrand

4
@vonbrand Không, đọc 100MB từ /dev/urandomlà ổn, không có lý do gì để không làm điều đó. Và không sử dụng twister Mersenne để làm tiền điện tử. Và không sử dụng /dev/randomtrên Linux .
Gilles 'SO- ngừng trở nên xấu xa'

3
@jofel: Không, đầu ra /dev/urandom tốt cho việc sử dụng mật mã. Không sử dụng /dev/random.
Thomas Pornin

@Gilles, có lẽ tôi đang mất nó ... Tôi đồng ý với mọi điều bạn nói, tôi không thể thấy tôi nói bất cứ điều gì khác biệt.
vonbrand

@Gilles & vonbrand: Cảm ơn bạn đã bình luận, tôi đã cải thiện câu trả lời của mình (hiện chỉ có 1 MB trong ví dụ, / dev / urandom được đề xuất).
jofel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.