פתח יצירת סיסמאות אקראית עם PowerShell

חשוב לשמור על סיסמאות ארוכות ולא פשוטות לניחושים. ייתכן שתדע כיצד ליצור סיסמה מאובטחת, אך האם לא היה נחמד לך לקבל סקריפט קטן שיעשה זאת בשבילך? מזל טוב עליך, אם אתה בווינדוס, אתה יכול לבנות מחולל סיסמאות אקראי עם PowerShell שיצור אורכים שונים ומורכבויות!

במקום לבנות את המחולל שלך של סיסמאות אקראיות, השתמש בשיטה קיימת שמספקת מיקרוסופט נקראת GeneratePassword() .NET. שיטה זו מגיעה עם המחלקה System.Web.Security.Membership ותעשה את כל מה שצריך.

בניית הסקריפט

כדי לבנות סקריפט זה בצורה פשוטה, תצטרך להפוך את ההרכבה System.Web לזמינה. המחלקה System.Web.Security.Membership היא חלק מההרכבה הזו והיא לא זמינה כברירת מחדל.

Add-Type -AssemblyName 'System.Web'

כאשר ההרכבה System.Web זמינה, כעת תוכל לקרוא לשיטה GeneratePassword().

השיטה GeneratePassword() מקבלת שני ארגומנטים; length ו־numberOfNonAlphanumericCharacters. באמצעות שני הארגומנטים האלו ניתן ליצור סיסמאות אקראיות מכל הסוגים עם PowerShell.

  • אורך – זהו אורך התווים שבו תהיה הסיסמה.
  • numberOfNonAlphanumericCharacters – זהו מספר התווים שאינם אלפא-נומריים שהשיטה תייצר. חשוב לחשוב על תווים כמו @,%,&, וכו'.

ראשית, הגדר את אורך הסיסמה שתרצה לקבל. הדוגמה למטה מגדירה משתנה של 10 אשר תעביר לשיטה.

$length = 10

לאחר מכן, הגדר את מספר התווים שאינם אלפא-נומריים שתרצה לכלול בסיסמה. הקטע קוד למטה מגדיר משתנה 5 אשר תספק לשיטה כדי לוודא כי חמישה תווים שאינם אלפא נמצאים בסיסמה.

$nonAlphaChars = 5

באשר לזמן בו תקרא את השיטה GeneratePassword() תעביר את ערכי שני המשתנים שהוגדרו לעיל.

[System.Web.Security.Membership]::GeneratePassword($length, $nonAlphaChars)

כאשר אתה מבצע את קטע הקוד לעיל, PowerShell יחזיר אסורטימנט אקראי של תווים במחרוזת אשר תוכל להשתמש בה לכל צורך.

בניית אורך סיסמה אקראית

אתה יכול אף לקבל קצת יותר אקראיות ולהפוך את אורכי הסיסמאות לאקראיים גם. השתמש בפקודת Get-Random כדי לייצר מספר שלם אקראי אשר תוכל להשתמש בו כארגומנט length ליצירת סיסמה באורך אקראי גם!

$minLength = 5 ## תווים
$maxLength = 10 ## תווים
$length = Get-Random -Minimum $minLength -Maximum $maxLength
$nonAlphaChars = 5
$password = [System.Web.Security.Membership]::GeneratePassword($length, $nonAlphaChars)

אם תשתמש בסיסמה זו ב-PowerShell, רבים מהרכיבים דורשים מחרוזת מאובטחת. לאחר שיש לך את הסיסמה כמחרוזת טקסט פשוט, תוכל להמיר אותה למחרוזת מאובטחת באמצעות פקודת ה-ConvertTo-SecureString.

$secPw = ConvertTo-SecureString -String $password -AsPlainText -Force

בניית פונקצית PowerShell

לבסוף, קח את מחולל הסיסמאות האקראיות הזה לשלב הבא על ידי יצירת פונקציה אשר תוכל להשתמש בה בכל מקום שתרצה מבלי לזכור את כל התחבירים שנסברו לעיל.

function New-RandomPassword {
    param(
        [Parameter()]
        [int]$MinimumPasswordLength = 5,
        [Parameter()]
        [int]$MaximumPasswordLength = 10,
        [Parameter()]
        [int]$NumberOfAlphaNumericCharacters = 5,
        [Parameter()]
        [switch]$ConvertToSecureString
    )
    
    Add-Type -AssemblyName 'System.Web'
    $length = Get-Random -Minimum $MinimumPasswordLength -Maximum $MaximumPasswordLength
    $password = [System.Web.Security.Membership]::GeneratePassword($length,$NumberOfAlphaNumericCharacters)
    if ($ConvertToSecureString.IsPresent) {
        ConvertTo-SecureString -String $password -AsPlainText -Force
    } else {
        $password
    }
}

פעם שהוספת את הפונקציה הזו לפרופיל שלך, ייתכן שתרצה ליצור מודול של PowerShell אולי או פשוט להעתיק ולהדביס אותו לתוך ההפעלה הנוכחית שלך, ותוכל לבצע אותה בקלות.

New-RandomPassword -MinimumPasswordLength 10 -MaximumPasswordLength 15 -NumberOfAlphaNumericCharacters 6 -ConvertToSecureString

Source:
https://adamtheautomator.com/random-password-generator/