반응형
VB.NET으로 만든 27자리 비번만드는 코드를 공유한다.
pw27.zip
0.28MB
27자리 비밀번호 생성코드를 공유한다.
생성조건은 다음과 같다.
1. 비번은 27자리이어야 한다.
2. 특수문자가 포함되야 한다.
3. 숫자가 포함되야 한다.
4. 영문 소문자만 사용한다.
5. 기본 텍스트는 밀리터리 코드를 영어로 사용한다. (알파, 브라보, 찰리, 델타...)
Imports System.Security.Cryptography
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
' 암호에 사용되는 영어 단어 정의
Private ReadOnly Words As String() = {"alpha", "bravo", "charlie", "delta", "echo",
"foxtrot", "golf", "hotel", "india", "juliet",
"kilo", "lima", "mike", "november", "oscar",
"papa", "quebec", "romeo", "sierra", "tango",
"uniform", "victor", "whiskey", "x-ray", "yankee", "zulu"}
' 비밀번호에 사용되는 특수 문자 정의
Private ReadOnly SpecialChars As String = "!@#$%^&*()_+-=[]{}|;:',.<>?/`~"
' 비밀번호에 사용되는 숫자 정의
Private ReadOnly Digits As String = "0123456789"
' 타이머를 사용하여 타이핑 효과를 구현
Private WithEvents TypingTimer As New Timer()
Private CurrentPassword As StringBuilder
Private Passwords As New List(Of String)
Private CurrentPasswordIndex As Integer
Private CharIndex As Integer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 타이머 설정
TypingTimer.Interval = 20 ' 타이핑 속도 (밀리초 단위)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 초기화
Passwords.Clear()
RichTextBox1.Clear()
CurrentPasswordIndex = 0
' 비밀번호 생성
For i As Integer = 1 To 20 ' 비밀번호 20개 생성
Passwords.Add(GeneratePassword())
Next
' 타이머 시작
If Passwords.Count > 0 Then
CurrentPassword = New StringBuilder(Passwords(CurrentPasswordIndex))
CharIndex = 0
TypingTimer.Start()
End If
End Sub
Private Function GeneratePassword() As String
Dim random As New Random()
Dim password As New StringBuilder()
' 4자리 숫자 추가
For i As Integer = 1 To 4
password.Append(Digits(random.Next(Digits.Length)))
Next
' 추가 단어와 특수 문자로 비밀번호 생성
While password.Length < 27
Dim word As String = Words(random.Next(Words.Length))
If password.Length + word.Length <= 27 Then
password.Append(word)
End If
If password.Length < 27 AndAlso random.Next(2) = 1 Then
password.Append(SpecialChars(random.Next(SpecialChars.Length)))
End If
End While
' 비밀번호 문자열을 셔플
Dim passwordChars As Char() = password.ToString().ToCharArray()
ShuffleArray(passwordChars)
Return New String(passwordChars).Substring(0, 27)
End Function
Private Sub ShuffleArray(Of T)(array As T())
Dim rng As New Random()
Dim n As Integer = array.Length
While n > 1
n -= 1
Dim k As Integer = rng.Next(n + 1)
Dim value As T = array(k)
array(k) = array(n)
array(n) = value
End While
End Sub
Private Sub TypingTimer_Tick(sender As Object, e As EventArgs) Handles TypingTimer.Tick
If CharIndex < CurrentPassword.Length Then
RichTextBox1.AppendText(CurrentPassword(CharIndex))
CharIndex += 1
Else
RichTextBox1.AppendText(Environment.NewLine)
CurrentPasswordIndex += 1
If CurrentPasswordIndex < Passwords.Count Then
CurrentPassword = New StringBuilder(Passwords(CurrentPasswordIndex))
CharIndex = 0
Else
TypingTimer.Stop()
End If
End If
End Sub
End Class

728x90
'디지털포렌식(Digital forensic)' 카테고리의 다른 글
안드로이드 데이터 공유 프로토콜, CP (0) | 2024.07.14 |
---|---|
fastboot를 이용한 안드로이드 포렌식 (0) | 2024.07.08 |
모바일 포렌식 절차와 규정 (1) | 2024.07.05 |
사생활이 기록된 Index.dat 분석기 (0) | 2023.11.12 |
대체 데이터 스트림(ADS) 검출과 삭제방법 - 디지털포렌식 (0) | 2023.11.11 |