apg - tạo ra một số mật khẩu ngẫu nhiên
apg [-a algorithm] [-M mode] [-E char_string] [-n num_of_pass] [-m min_pass_len] [-x max_pass_len] [-r dictfile] [-b filter_file] [-p min_substr_len] [-s] [-c cl_seed] [-d] [-y] [-l] [-t] [-q] [-h] [-v]
apg tạo một số mật khẩu ngẫu nhiên. Nó sử dụng một số thuật toán tạo mật khẩu (hiện có hai thuật toán) và một trình tạo số ngẫu nhiên giả được tích hợp sẵn.
Thuật toán mặc định là thuật toán tạo mật khẩu có thể phát âm được do Morrie Gasser thiết kế và được mô tả trong Trình tạo từ ngẫu nhiên cho mật khẩu có thể phát âm Dịch vụ thông tin kỹ thuật quốc gia (NTIS) AD-A-017676. Bài viết gốc rất cũ và chưa bao giờ được đưa lên mạng, vì vậy tôi phải sử dụng triển khai NIST được mô tả trong FIPS-181.
Một thuật toán khác là thuật toán tạo ký tự ngẫu nhiên đơn giản, nhưng nó sử dụng bốn bộ ký hiệu do người dùng xác định để tạo mật khẩu ngẫu nhiên. Điều đó có nghĩa là người dùng có thể chọn loại biểu tượng sẽ xuất hiện trong mật khẩu. Các bộ ký hiệu bao gồm: bộ ký hiệu số (0,...,9), bộ ký hiệu chữ hoa (A,...,Z), bộ ký hiệu chữ nhỏ (a,...,z) và bộ ký hiệu đặc biệt (#,@,!,...).
Trình tạo số giả ngẫu nhiên tích hợp là triển khai thuật toán được mô tả trong Phụ lục C của ANSI X9.17 hoặc RFC 1750 ngoại trừ việc sử dụng CAST hoặc SHA-1 thay vì Triple DES. Trình tạo này sử dụng thời gian địa phương với độ chính xác micro giây (xem gettimeofday(2)) và /dev/random (nếu có sẵn) để tạo hạt giống ngẫu nhiên ban đầu.
apg cũng có khả năng kiểm tra chất lượng mật khẩu được tạo bằng từ điển. Bạn có thể sử dụng khả năng này nếu bạn chỉ định các tùy chọn dòng lệnh -r dictfile hoặc -b filtername trong đó dictfile là tên tệp từ điển và filtername là tên của tệp bộ lọc Bloom. Trong từ điển đó, bạn có thể đặt các từ (một từ trên mỗi dòng) không xuất hiện dưới dạng mật khẩu được tạo. Ví dụ: tên người dùng, từ thông dụng, v.v. Bạn thậm chí có thể sử dụng một trong các từ điển đi kèm với công cụ bẻ khóa mật khẩu từ điển. Nên tạo tệp bộ lọc Bloom bằng tiện ích apgbfm(1) có trong bản phân phối apg. Trong các bản phát hành trong tương lai, tôi dự định triển khai một số kỹ thuật khác để kiểm tra mật khẩu (như kiểm tra mẫu) chỉ để làm cho cuộc sống dễ dàng hơn.
Sử dụng thuật toán để tạo mật khẩu.
0 - tạo mật khẩu có thể phát âm được (mặc định)
1 - tạo mật khẩu ký tự ngẫu nhiên
Tạo số num_of_pass mật khẩu. Mặc định là 6.
Tạo mật khẩu có độ dài tối thiểu min_pass_len. Nếu min_pass_len > max_pass_len thì max_pass_len=min_pass_len. Độ dài mật khẩu tối thiểu mặc định là 8.
Tạo mật khẩu có độ dài tối đa max_pass_len. Nếu min_pass_len > max_pass_len thì max_pass_len=min_pass_len. Độ dài mật khẩu tối đa mặc định là 10.
Sử dụng bộ ký hiệu được chỉ định với chế độ để tạo mật khẩu. mode là một chuỗi văn bản bao gồm các ký tự S, s, N, n , C, c, L, l. Ở đâu:
Trình tạo phải sử dụng bộ ký hiệu đặc biệt cho mọi mật khẩu được tạo.
Trình tạo nên sử dụng bộ ký hiệu đặc biệt để tạo mật khẩu.
Trình tạo phải sử dụng bộ ký hiệu số cho mọi mật khẩu được tạo.
Trình tạo nên sử dụng bộ ký hiệu số để tạo mật khẩu.
Trình tạo phải sử dụng bộ ký hiệu viết hoa cho mọi mật khẩu được tạo.
Trình tạo nên sử dụng bộ ký hiệu viết hoa để tạo mật khẩu.
Trình tạo phải sử dụng ký hiệu chữ cái nhỏ được đặt cho mọi mật khẩu được tạo (luôn xuất hiện nếu thuật toán tạo mật khẩu có thể phát âm được sử dụng).
Trình tạo nên sử dụng bộ ký hiệu chữ cái nhỏ để tạo mật khẩu.
Không được hỗ trợ nữa. Thay vào đó, hãy sử dụng tùy chọn -E char_string.
chế độ không được dài hơn 4 ký tự.
Lưu ý:
Việc sử dụng L, M, S, C sẽ làm chậm quá trình tạo mật khẩu.
Examples:
-M sncl -M SNCL -M Cn
Exclude characters in char_string from password generation process (in pronounceable password generation mode you can not exclude small letters). To include special symbols that can be recognized by shell (apostrophe, quotes, dollar sign, etc.) in char_string use the backslashed versions.
Ví dụ:
Lệnh apg -a 1 -M n -n 3 -m 8 -E 23456789 sẽ tạo một bộ mật khẩu giống như sau:
10100110 01111000 11011101
Lệnh apg -a 1 -M nc -n 3 -m 26 -E GHIJKLMNOPQRSTUVWXYZ sẽ tạo một bộ mật khẩu giống như sau:
16A1653CD4DE5E7BD9584A3476 C8F78E06944AFD57FB9CB882BC 8C8DF37CD792D36D056BBD5002
Kiểm tra xem mật khẩu đã tạo có xuất hiện trong dictfile
Kiểm tra xem mật khẩu đã tạo có xuất hiện trong filter_file hay không. filter_file phải được tạo bằng tiện ích apgbfm(1).
Tùy chọn này yêu cầu apg(1) kiểm tra mọi chuỗi con của mật khẩu đã tạo để xuất hiện trong filter_file. Nếu bất kỳ chuỗi con nào như vậy được tìm thấy trong filter_file thì mật khẩu được tạo sẽ bị từ chối và apg(1) sẽ tạo một mật khẩu khác. min_substr_len chỉ định độ dài chuỗi con tối thiểu để kiểm tra. Tùy chọn này chỉ hoạt động nếu tùy chọn -b được xác định.
Hỏi người dùng chuỗi ngẫu nhiên để tạo mật khẩu
Sử dụng cl_seed làm nguồn ngẫu nhiên để tạo mật khẩu. Tôi sử dụng nó khi tôi phải tạo mật khẩu trong tập lệnh shell.
Ví dụ:
-c /dev/urandom -c /tmp/seed_file
KHÔNG sử dụng bất kỳ dấu phân cách nào giữa các mật khẩu được tạo. Tôi sử dụng nó khi tôi phải tạo mật khẩu trong tập lệnh shell.
In mật khẩu đã tạo và mật khẩu được mã hóa (xem mật mã(3))
Chế độ im lặng (không in cảnh báo)
Mật khẩu được tạo chính tả. Hữu ích khi bạn muốn đọc mật khẩu đã tạo qua điện thoại.
CẢNH BÁO: Hãy suy nghĩ kỹ trước khi đọc mật khẩu của bạn qua điện thoại.
In phát âm cho mật khẩu có thể phát âm được tạo. Bị bỏ qua nếu -a 1 được đặt.
In thông tin trợ giúp và thoát
In thông tin phiên bản và thoát
apg -a 0 -M sncl -n 6 -x 10 -m 8
Nếu bạn muốn tạo mật khẩu thực sự an toàn, bạn nên sử dụng tùy chọn -s. Để đơn giản hóa việc sử dụng apg, bạn có thể viết một tập lệnh shell nhỏ. Ví dụ:
[begin]----> pwgen.sh #!/bin/sh /usr/local/bin/apg -m 8 -x 12 -s [ end ]----> pwgen.sh
Khi hoàn thành thành công nhiệm vụ của mình, apg sẽ hoàn thành với mã thoát 0. Mã thoát -1 cho biết đã xảy ra lỗi. Lỗi văn bản được ghi vào luồng lỗi tiêu chuẩn.
Nếu không có /dev/random, apg sẽ hiển thị thông báo về nó.
Không có.
Không có. Nếu bạn tìm thấy, vui lòng gửi mô tả lỗi cho tác giả.
apgbfm(1)
Adel I. Mirzazhanov,
Trang chủ dự án: http://www.adel.nursat.kz/apg/