반응형
아래는 도어락용 랜덤 비밀번호 12자리 100,000개(10만개)의 파일이다.
12자리 랜덤 비번의 조건은 다음과 같다.
1. 456789 456789와 같이 반복되면 안된다(앞의 6자리와 뒤의 6자리가 같으면 안된다.)
2. 454545454545와 같이 2자리씩 같은 숫자가 계속해서 6번 반복되면 안된다.
3. 123456789012와 같이 일련되는 숫자가 링(ring) 형태로 반복되면 안된다.
4. 123456654321과 같이 일련의 숫자가 역순의 숫자형태로 배치되면 안된다.
파일은 ZIP 파일로 압축되었으며, 압축 해제 후 용량은 43Mb이다.
위 비번을 생성하는 코드는 C#으로 만들어졌으며 소스는 아래와 같다.
using System;
using System.IO;
class Program
{
static Random random = new Random();
static int GenerateRandomDigit()
{
return random.Next(10); // 0부터 9까지의 난수 생성
}
static string GeneratePassword()
{
while (true)
{
int[] passwordDigits = new int[12];
// 12자리 랜덤 비밀번호 생성
for (int i = 0; i < 12; i++)
{
passwordDigits[i] = GenerateRandomDigit();
}
bool isRepeatedPattern = false;
bool isConsecutive = false;
bool isReverseOrder = true;
for (int i = 0; i < 6; i++)
{
if (passwordDigits[i] != passwordDigits[11 - i])
{
isReverseOrder = false;
break;
}
}
for (int i = 0; i < 8; i++)
{
if (passwordDigits[i] == passwordDigits[i + 2] &&
passwordDigits[i + 1] == passwordDigits[i + 3] &&
passwordDigits[i + 2] == passwordDigits[i + 4])
{
isRepeatedPattern = true;
break;
}
}
if (passwordDigits[0] == passwordDigits[11] &&
passwordDigits[1] == passwordDigits[10] &&
passwordDigits[2] == passwordDigits[9] &&
passwordDigits[3] == passwordDigits[8] &&
passwordDigits[4] == passwordDigits[7] &&
passwordDigits[5] == passwordDigits[6])
{
isReverseOrder = true;
}
if (!isRepeatedPattern && !isConsecutive && !isReverseOrder)
{
return string.Join("", passwordDigits);
}
}
}
static void Main()
{
int numberOfPasswords = 1000000;
string fileName = "12digits_password.txt";
using (StreamWriter writer = new StreamWriter(fileName))
{
for (int i = 0; i < numberOfPasswords; i++)
{
string password = GeneratePassword();
writer.WriteLine($"생성된 비밀번호 {i + 1}: {password}");
}
}
Console.WriteLine($"파일 '{fileName}'에 비밀번호를 저장했습니다.");
}
}
코드 실행 후 결과는 12digits_password.txt 파일에 저장된다.
만약, 10만개 이상의 번호를 생성하기를 원한다면 위 코드에서
int numberOfPasswords = 1000000;
이 숫자를 더 크게 변경하면 되지만, 시스템의 성능에 따라 연산 시간이 소요된다.
728x90
'디지털포렌식(Digital forensic) > 숫자' 카테고리의 다른 글
[파일] 6/45 번호 생성 앱 (1) | 2023.10.16 |
---|---|
[파일] EAN-13 바코드 만들기 (0) | 2023.10.16 |
[파일 공개] 로또 모든 번호 리스트 (1) | 2023.10.08 |
슬롯 머신, 카지노 기계의 동작 원리 (2) | 2023.10.01 |
[파일] 추천 비밀번호 1000만 개 (0) | 2023.09.28 |