난수 생 성 방식

4021 단어
1. bash 에 내장 되 어 있 는 난수 생 성기:
셸 에 환경 변수 RANDOM 이 있 는데 그 범 위 는 0 - 32767 입 니 다.
1. 우리 가 0 - 25 범위 내의 수 를 만 들 려 면 어떻게 해 야 합 니까?다음 과 같다.
이 환경 변 수 를 이용 하여 26 모델 을 취하 면 최소 0, 최대 25 의 수 를 얻 을 수 있다.
echo RANDOM%26]
2. 1 - 68 범위 내의 수 를 얻 으 려 면 앞에서 최소 0, 최대 67 의 무 작위 수 를 얻 을 수 있 고 1 을 더 하면 자 연 스 럽 게 최대 1, 최소 68 의 수 를 얻 을 수 있다.
echo RANDOM%68+1]
3. 6 - 87 범위 내의 수 를 얻 으 려 면.이렇게
앞에서 최소 0, 최대 81 의 무 작위 수 를 얻 을 수 있 고 6 을 더 하면 자 연 스 럽 게 최대 87, 최소 6 의 수 를 얻 을 수 있다.
echo $$[RANDOM%82+6]
위의 세 가지 예 를 통 해 다른 범위 안의 수 는 똑 같이 이런 방법 으로 생 길 수 있 고 규칙 을 정리 하면 다른 범위 안의 수 를 유추 할 수 있다.
2. Linux 시스템 이 제공 하 는 랜 덤 위조 장치
소개: 1./dev/random 과/dev/urandom 은 Linux 시스템 에서 제공 하 는 랜 덤 위조 장치 입 니 다. 이 두 장치 의 임 무 는 비어 있 지 않 은 랜 덤 바이트 데이터 흐름 을 제공 하 는 것 입 니 다.많은 복호화 프로그램 과 보안 프로그램 (예 를 들 어 SSH Keys, SSL Keys 등) 이 제공 하 는 무 작위 데이터 흐름 이 필요 합 니 다.
2. 이 두 장치 의 차 이 는:/dev/random 의 random pool 은 시스템 중단 에 의존 하기 때문에 시스템 의 중단 수가 부족 할 때/dev/random 장 치 는 계속 봉쇄 되 고 읽 으 려 는 프로 세 스 는 대기 상태 에 들 어 갑 니 다. 시스템 의 중단 수가 충분 할 때 까지/dev/random 장 치 는 데이터 의 임 의 성 을 확보 할 수 있 습 니 다./dev/urandom 은 시스템 의 중단 에 의존 하지 않 고 프로 세 스 가 바 쁘 지 않 지만 데이터 의 임 의 성도 높 지 않 습 니 다.
        ?    
                       IRQ(    )   。
          ,   ,   ,           CPU。
     CPU       ,CPU               ,                    (interrupt service routine)     。
                          ,                   。   CPU   ,              。

3. dev/urandom 과 dev/random 은 모두 비어 있 지 않 은 랜 덤 문자 흐름 을 발생 시 킵 니 다. 차이 점 은/dev/random 장 치 는 시스템 이 발생 하 는 랜 덤 문자 흐름 이 충분 할 때 까지 봉쇄 합 니 다. 그래서 시간 이 오래 걸 리 지 않 습 니 다./dev/urandom 장 치 는 봉쇄 되 지 않 고 데이터 의 랜 덤 정도 가 높 지 않 지만 일반적인 상황 은 충분히 사용 할 수 있 습 니 다.
4./dev/random 을 사용 하 는 것 이/dev/urandom 을 사용 하 는 것 보다 대량의 난수 가 발생 하 는 속도 가 느리다.
[root@centos7 bin]#cat/dev/urandom | head -c15 g@ RJȟ [root@centos7 bin]#
필터 경 기 를 통 해 랜 덤 수 나 랜 덤 자 모 를 추출 할 수 있 습 니 다. 다음 과 같이 랜 덤 자모 방식 을 만 들 수 있 습 니 다.
[root@centos7 bin]#cat/dev/urandom | tr -dc '[:alpha:]' | head -c8
NbvFFlhs [root@centos7 bin]#
무 작위 숫자 생 성 방식
[root@centos7 bin]#cat/dev/urandom 100 | tr -dc '[:digit:]'|head -c8 25786670 [root@centos7 bin]#
3. openssl rand 생 성 무 작위 문자
용도: 가짜 랜 덤 바이트 생 성 에 사용 합 니 다.무 작위 디지털 생산 기 는 seed 가 필요 합 니 다. 먼저 말 했 습 니 다./dev/random 시스템 이 없 는 해결 방법 은 스스로 ~/rnd 파일 을 만 드 는 것 입 니 다.이 프로그램 이 무 작위 디지털 생산 기 를 만 족 스 럽 게 seeded 로 만 들 수 있다 면.프로그램 은 이상 한 것들 을 써 서 이 파일 로 되 돌려 주 었 다.사용법:
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
옵션 설명: - out file: 결 과 를 file 에 출력 합 니 다. -rand file (s): 난수 피 드 파일 을 지정 합 니 다. 여러 파일 간 에 구분자 로 나 누고 windows 는 ";", OpenVMS 는 ",", ", 다른 시스템 은": "를 사용 합 니 다. - base 64: 출력 결 과 는 BASE 64 인 코딩 데이터 입 니 다. - hex: 출력 결 과 는 16 진수 데이터 입 니 다. num: 난수 길이 입 니 다.
실례:
[root@centos7 bin]#openssl rand 12 *II+pߋ [root@centos7 bin]#
이 12 바이트 의 무 작위 수 는 난호 로 표시 되 며, 무 작위 문자열 을 base 64 인 코딩 하거나 hex 형식 으로 표시 할 수 있 습 니 다.
[root@centos7 bin]#openssl rand -base64 30 Abpd8tiUxE4jiWxTi5ixuzPCv4U09/w1yl3/9zpn [root@centos7 bin]#
[root@centos7 bin]#openssl rand -base64 -out outfile 30 [root@centos7 bin]#cat outfile SbTi2ljqeX1Yoiga+P0CeEhQfTJ7TvEdRcTo/NK3 [root@centos7 bin]#
[root@centos7 bin]#openssl rand -hex 12 c4f80294bf1ccaf730155265 [root@centos7 bin]#openssl rand -base64 12 DLcY1c+cRGIAPntE
필터 경 기 를 통 해 랜 덤 수 나 랜 덤 자 모 를 추출 할 수 있 습 니 다. 다음 과 같이 랜 덤 자모 방식 을 만 들 수 있 습 니 다.
[root@centos7 bin]#openssl rand -base64 100 | tr -dc '[:alpha:]'|head -c8 gVbdJqeF [root@centos7 bin]#openssl rand -base64 100 | tr -dc '[:alpha:]'|head -c8 ukuIhCkX [root@centos7 bin]#
무 작위 숫자 생 성 방식
[root@centos7 bin]#openssl rand -base64 100 | tr -dc '[:digit:]'|head -c8 03448683 [root@centos7 bin]#openssl rand -base64 100 | tr -dc '[:digit:]'|head -c8 74737756 [root@centos7 bin]#
응용
글꼴 색상 추가\033 [33m 문자\033 [0m 문자 [[0m 무 작위 색상 color = RANDOM% 8 + 31]\033 [${color} m 문자\033 [0m 색상 사례 를 저장 하 는 파일 cat/etc/DIR COLORS

좋은 웹페이지 즐겨찾기