1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

PowerShell スクリプト ランダムパスワードジェネレータ (ps random password generator)

2022-01-04 17:05:24

このスクリプトがすること ランダムなパスワードを生成する。パスワード1文字あたりの文字数、パスワードの数、保存場所などをカスタマイズすることができる。
スクリプトの使用方法
スクリプトはハードコーディングされていますので、スクリプトを開いて以下の変数を変更する必要があります。
$生成されたパスワードの総数 = 1000
パスワードのビット数 = 12
保存先ディレクトリ = 'e:\pathlog_path'
ディスク上の大容量ファイル = 'f:\'
スクリプトはゆっくりと実行されるので、powershell ウィンドウを縮小してください。
小文字+数字+特殊記号 password.txt]、[大文字+数字 password.txt]、[小文字+数字 password.txt]のファイルです。
ヒント:disk + path + s + <tab> キーを入力すると、スクリプトの名前が自動的に入力されます。

フルコードです。

#This script generates 3 files (lowercase plus numeric passwords.txt, case plus numeric passwords.txt, lowercase plus numeric plus special symbols passwords.txt) in the $ depository directory
#Each file contains $ total number of passwords generated.
#This script generates passwords by adding random numbers based on the large file as a random number seed. Passwords will not be generated if the large file is not found.

Total number of passwords generated = 1000
$number of bits per password = 12 
$disk directory = 'e:\script ps\log_ps\'
$disk directory where the large file is located = 'f:\'
[array]$large file type = "*.rmvb","*.mkv","*.mp4","*.avi"

$lowercase plus numeric password = $deposit directory + 'lowercase plus numeric password.txt'
$Uppercase password = $Store directory + 'Upper and lower case plus numeric passwords.txt'
$withSpecialSignPassword = $SaveDiskDir + 'lowercase plus numeric plus special sign password.txt'

#$ErrorActionPreference = "SilentlyContinue"
$Largest 10 files = Get-ChildItem -path $Large file directory -recurse -force -Include $Large file type | Sort-Object length -Descending | select-object -first 10
if ($Largest 10 files.Length -lt 10)
{
	Write-Error "This script adds random numbers to generate passwords based on large files as random number seeds. Not finding the large file will not generate the password. "
	Write-Error "Can't find $Large file type file on $Large file drive, or total number of files is not 10"
	exit
}


$Password seed file = $Largest 10 files | Get-Random
Write-Host " This script generates passwords based on large files as random number seeds, plus random numbers. Failure to find the large file will prevent the password from being generated. "
Write-Host $PasswordSeedFile.FullName,$PasswordSeedFile.length

mkdir $Save directory
Write-Host "----Number of passwords generated: $Total number of passwords generated Location of generation: $Disk "

$filestream = new-object system.io.filestream($password seed file,"open")
$null = $filestream.seek(0,0)
$reader = new-object System.IO.




$lowercase = "a","b","c","d","e","f","g","h","i" ;,"j","k","m","n","o","p","q","r","s","t","t","t","t","t","t","t","t","t","t","t" quot;t","u","v","w","x","y","z" 
# lowercase letters without letter l

$number = "2","3","4","5","6","7","8","9" 
#No 0,1

$ capital letters = "A","B","C","D","E","F","G","H","J" ;,"K","L","M","N","P","Q","R","S","T","U","U","U","U","U","U","U","U","U","U","U" "U","V","W","X","Y","Z" 

$SpecialSign = "~","~","! ","@","#","$","%","^","&","*","(",") "
# capital letters without letters I,O

$Lowercase plus digits = $Lowercase + $number
$Case plus digits = $Uppercase + $Lowercase + $Number
$with special symbols = $lowercase letters + $numbers + $special symbols



Number of $ lowercase plus digits passwords = 0
while ($Number of lowercase plus numeric passwords -lt $Total number of passwords generated)
{
	$a password = $null
	while ($one password.length -lt $number of digits per password)
	{
		$random number from file = $reader.Readbyte()
		$ps random number = 1..50 | Get-Random
		$random = $random number from file - $ps random number
		if (($random number -lt 123) -and ($random number -ge 32) )
		{
			$Password letter = [char][int]$Random 
			if ($lowercase plus digits -ccontains $password letter)
			{
				$a password = $a password + $password letter
			}
		}
	}
	$result = $one password
	
	if ($result -match "[0-9]+")
	{
		# shuffle
		$Result = $Result | Get-Random -Count $Number of bits per password
		$Result >> $Lowercase plus numeric passwords
	  Write-Host ". " -NoNewline -ForegroundColor Yellow
		$Number of lowercase plus numeric passwords ++
	}
}
Write-Host "`n--Complete $Total number of passwords generated Number of [lowercase plus numeric] passwords created--"

$ number of passwords with uppercase = 0
while ($ number of passwords with uppercase -lt $ total number of passwords generated)
{
	$a password = $null
	while ($one password.length -lt $number of digits per password)
	{
		$random number from file = $reader.Readbyte()
		$ps random number = 110..150 | Get-Random
		$random = $random number from file - $ps random number
		if (($random number -lt 123) -and ($random number -ge 32) )
		{
			$Password letter = [char][int]$Random 
			if ($case plus number -ccontains $password letter)
			{
				$a password = $a password + $password letter
			}
		}
	}
	$result = $one password
	
	if ($result -match "[0-9]+")
	{
		# shuffle
		$Result = $Result | Get-Random -Count $Number of bits per password
		$Result >> $with-UpperCasePassword
	  Write-Host ". " -NoNewline -ForegroundColor Yellow
		$Number of uppercase passwords ++
	}
}
Write-Host "`n--Complete $Total number of passwords generated [uppercase and lowercase plus numbers] passwords created ---"



$ number of passwords with special symbols = 0
while ($Number of passwords with special symbols -lt $Total number of passwords generated)
{
	$a password = $null
	while ($one password.length -lt $number of digits per password)
	{
		$random number from file = $reader.Readbyte()
		$ps random number = 1..50 | Get-Random
		$random = $random number from file - $ps random number
		if (($random number -lt 123) -and ($random number -ge 32) )
		{
			$Password alphabet = [char][int]$Random 
			if ($contains special symbols -ccontains $password letters)
			{
				$a password = $a password + $password letter
			}
		}
	}
	$result = $one password
	
	if ($result -match "[0-9]+")
	{
		# shuffle
		$Result = $Result | Get-Random -Count $Number of bits per password
		$Result >> $Password with special symbols
	  Write-Host ". " -NoNewline -ForegroundColor Yellow
		$Number of passwords with special symbols ++
	}
}
Write-Host "`n---Complete $Total number of generated passwords One [lowercase plus numbers plus special symbols] password created--"

#Write-Host `n,$FileStream.Position
Dispose()

Write-Host "`n---Complete 3 passwords, each: $Total number of generated passwords One password created---`nDon't tell me you're missing a password! `nChange passwords diligently! " 

パッケージのダウンロード getpwd_jb51.rar

------ [スクリプト機能] ------ [スクリプト機能

最速ではありませんが、本当にランダムです。

擬似乱数。
ランダムなパスワードは、実際には乱数の組み合わせに過ぎません。.netの乱数生成は高速で優れていますが、これも擬似乱数です。pythonの乱数関数
pythonの乱数関数も非常に高速で優秀ですが、これも擬似乱数です。生成されるのは擬似乱数ばかりです。

真の乱数
真の乱数を生成する方法はなく、真の乱数を【取る】だけである。

このスクリプトの素晴らしさ
パスワードのランダム生成はいくつかのバージョンを書きましたが、最初は[ライブラリを呼び出し、擬似乱数を生成する]方法から始めました。その後、[真の乱数を取る]メソッドを見つけ、思わず私を褒めてしまいました(笑)。

ランダムな文字をカスタマイズできる

例えば、このスクリプトジェネレーターは、デフォルトでは、0、1、i、l、oの紛らわしい文字を含まない乱数を生成します。

オープンソースで、バックドアなし。

スクリプトの欠点:遅い。

------ [スクリプトの原理、流れ] ------ [スクリプトの原理、流れ

このスクリプトは、まずdirをあなたの[$大きなファイルの場所ディスクディレクトリ]を使用します。これは遅いステップで、パーミッションがないとエラーを報告するというメッセージは、直感的にわかるように、私が消したわけではありません。
これらのファイルはデフォルトで "*.rmvb","*.mkv","*.mp4","*.avi" であり、 [$large file type] で定義される最大の10ファイルを探します。
そうです、【大容量ムービーファイルから真の乱数を取る】ことなのです
ランダムに1つのファイルを選び、あるルールに従って数字を取り、それを組み合わせて固定長のパスワードを作り、その順番をランダムに乱すことで
そして、数字や特殊記号などの有無から、一致しない乱数を破棄する。

このスクリプトのもう一つの素晴らしい点は、(ランダムインテンシブアルゴリズムの場合)

固定)入力ソース、つまり大きなムービーファイルをロックしても
中の文書、バイトの内容がランダムである限り、結果のパスワードはランダムです。つまり、このスクリプトを2回実行すると、同じ名前のドキュメントが2つ生成され(もちろん、前のドキュメントはリネームする必要がある)、比較すると、生成される乱数がそれぞれ異なっていることがわかる。
文書、バイトの内容がすべて00、255など固定されている場合は、パスワードは生成されません。

------ [最終勧告] ------ [最終勧告] ------ [最終勧告] ------ [最終勧告

漏洩の可能性があるアカウントは、5年に一度、変更することをお勧めします。どうしても変更できない場合は、5年以内に1度でもログイン(利用)したことがあるアカウントに限ります。
5年以上口座番号を変えないと、ログインしていない銀行カードにあるお金が消えてしまうことがあります。国でも10年、8年でお金の様式を変えています。
powershell 宣教師 元記事 2016-02-06 転載を許可する、ただし名前と出典を残すこと、さもなければ法的責任を追及される。

パスワードは1年以内ごとに変更することが推奨されています。パスワードは複雑でなければならず、異なるアカウントで同じものを使用することはありません。

複雑なパスワードはパソコンに書き出し、暗号化する。3部コピーして別々の場所に保管し、6ヵ月ごとに更新する。

私の新しいスクリプト[Grey Master Cow Privacy Notepad]は現在進行中です、ご期待ください。