Генератор ключів

Є у cps від hytera дуже годна фішка – коли додаєш шифрування, ключі генеруються автоматично. У моторол з цим погано, і фантазії не завжди вистачає
Звісно, є купа всякого софта для вирішення цієї задачі, але мені не дуже подобається ставити незрозуміло що. Тому накидав досить простий скрипт на
PowerShell. Ключ генерується довжиною 64 символи, перший та останній – літерні (тобто в діапазоні A-F). Якщо треба інші довжина ключа – задайте потрібне значення змінної $ksz
Для зручності запуску можна створити ярлик з таким командним рядком – powershell -NoLogo -NonInteractive -WindowStyle hidden -ExecutionPolicy bypass -File c:\path\to\rnd.ps1

Код скрипта (rnd.ps1):

#
# Generate random key password
#
# Run: powershell -NoLogo -NonInteractive -WindowStyle hidden -ExecutionPolicy bypass -File rnd.ps1
#
 
$ksz = 64
 
Function Generate-Key {
    $str = Get-Random -Min 10 -Max 15 | ForEach-Object ToString X
    for ($i = 0; $i -lt $ksz - 2; $i++) {
        $str += Get-Random -Max 15 | ForEach-Object ToString X
    }
    $str += Get-Random -Min 10 -Max 15 | ForEach-Object ToString X
    $entry.Text = $str
}
 
# create GUI
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
 
# use flat view
[System.Windows.Forms.Application]::EnableVisualStyles()
 
# window
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Keys generator'
#$form.AutoSize = $true
$form.MaximizeBox = $false
$form.Size = New-Object System.Drawing.Size(600,80)
$form.StartPosition = 'CenterScreen'
 
# layout
$tbl = New-Object System.Windows.Forms.TableLayoutPanel
$tbl.Dock = 'Fill'
$tbl.AutoSize = $true
$tbl.Padding = 5
$form.Controls.Add($tbl)
 
# main gui
$entry = New-Object System.Windows.Forms.TextBox
$entry.Dock = 'Fill'
$entry.ReadOnly = $true
$tbl.Controls.Add($entry, 0, 0)
 
$btn = New-Object System.Windows.Forms.Button
$btn.Text = 'Generate'
$btn.Add_Click({Generate-Key})
$tbl.Controls.Add($btn, 1, 0)
 
[void]$tbl.ColumnStyles.Add((New-Object System.Windows.Forms.ColumnStyle([System.Windows.Forms.SizeType]::Percent), 100))
[void]$tbl.ColumnStyles.Add([System.Windows.Forms.SizeType]::AutoSize)
 
$form.ShowDialog()
 

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *