반응형
비밀번호를 만들 때 머리가 아프신 분들을 위해
1000만 개의 6자리 랜덤비밀번호를 첨부 파일로 올린다.
파일은 txt 텍스트 파일이며, 380MB의 사이즈를 갖고 있다.
파일당 용량이 정해져서 쪼개서 올린다.
(동영상은 PC로 보면 더 잘보인다.)
10,000,000
▼ 1000만개를 압축파일형태로 올린 것
잘 사용하는 방법
1. 검색 기능으로 자신이 좋아하는 숫자 조합을 찾는다(예: 74)
2. 찾아진 숫자조합들 중에서 마음에 들며 의미있는 숫자 조합을 다시 찾는다.
3. 찾은 숫자조합을 사용한다. 즐겁게.
국가와 민족을 위해 디지털암호학에 관심갖는 젊음이 많아지길 바라며.
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[6];
// 앞의 3자리와 뒤의 3자리가 같으면 안됨
do
{
for (int i = 0; i < 6; i++)
{
passwordDigits[i] = GenerateRandomDigit();
}
} while (passwordDigits[0] == passwordDigits[3] && passwordDigits[1] == passwordDigits[4] && passwordDigits[2] == passwordDigits[5]);
// 2자리 + 2자리 + 2자리의 숫자가 반복되면 안됨
bool isRepeatedPattern = true;
for (int i = 0; i < 4; i += 2)
{
if (passwordDigits[i] != passwordDigits[i + 1] || passwordDigits[i + 2] != passwordDigits[i + 3])
{
isRepeatedPattern = false;
break;
}
}
if (isRepeatedPattern)
continue;
// 0, 1, 2, 3, 4, 5와 같이 연속되면 안됨
bool isConsecutive = true;
for (int i = 0; i < 5; i++)
{
if (passwordDigits[i] != passwordDigits[i + 1] - 1)
{
isConsecutive = false;
break;
}
}
if (isConsecutive)
continue;
// 조건을 모두 만족하는 비밀번호 생성
return string.Join("", passwordDigits);
}
}
static void Main()
{
int numberOfPasswords = 10000000;
string fileName = "6digits_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}'에 비밀번호를 저장했습니다.");
}
}
728x90
'디지털포렌식(Digital forensic) > 숫자' 카테고리의 다른 글
[파일 공개] 로또 모든 번호 리스트 (1) | 2023.10.08 |
---|---|
슬롯 머신, 카지노 기계의 동작 원리 (2) | 2023.10.01 |
포인트-키 암호, 알파벳과 숫자의 절묘한 조합 (0) | 2023.09.15 |
데이터 분석으로 알아보는 2023년 로또 번호 빈도 분석 (1) | 2023.09.14 |
[파일]신용 카드 유효성 검사, Luhn 코드 (0) | 2023.09.07 |