PowerShell – آیا این نوع رمزگذاری یک طرفه است؟

من یک اسکریپت Powershell می نویسم که برای انجام کاری نیاز به یک حساب کاربری اختصاصی دارد. البته من قصد ندارم رمز عبور این حساب را در فایل .ps1 در متن واضح وارد کنم بنابراین من این راهنما را دنبال می کنم تا راه امنتری برای انجام این کار ایجاد کنم: https://www.pdq.com/blog / security-password-with-powershell-encryption-credentials-part-2 /

در اینجا کدی است که کلیدی را تولید می کند و رمز را رمزگذاری می کند:

 $ KeyFile = "\ Machine1  SharedPath  AES.key"
$ Key = New-Object Byte [] 16 # شما می توانید از 16، 24 یا 32 برای AES استفاده کنید
[Security.Cryptography.RNGCryptoServiceProvider] :: Create (). GetBytes ($ Key)
$ کلید | خارج فایل $ KeyFile

$ PasswordFile = "\ Machine1  SharedPath  Password.txt"
$ KeyFile = "\ Machine1  SharedPath  AES.key"
$ Key = دریافت محتوا $ KeyFile
$ password = "P @ ssword1" | ConvertTo-SecureString -AsPlainText -Force
$ رمز عبور | ConvertFrom-SecureString -key $ Key | خارج فایل $ PasswordFile

$ User = "MyUserName"
$ PasswordFile = "\ Machine1  SharedPath  Password.txt"
$ KeyFile = "\ Machine1  SharedPath  AES.key"
$ key = دریافت محتوا $ KeyFile
$ MyCredential = New-Object -TypeName System.Management.Automation.PSCredential `
 -ArgumentList $ کاربر، (دریافت محتوا $ PasswordFile | ConvertTo-SecureString -Key $ کلید)

با این حال، در پایین مقاله ذکر شده است:

مطمئن باشید که از کلید AES محافظت کنید، مثل اینکه رمز عبور شماست. هر شخصی
  کسی که می تواند کلید AES را بخواند، می تواند هر چیزی را که رمزگذاری شده است، رمزگشایی کند
  البته، هر کسی که به هر دو فایل .ps1 که به طور پیشفرض متن روشن است و فایل کلیدی AES دسترسی به آن را داشته باشد، می تواند به سادگی کد را بخواند و از نام و پرونده حساب برای ایجاد یک شیء PSC credential برای انجام امور استفاده کند. با. اما آیا می توانند از فایل کلیدی برای رمزگشایی محتویات فایل Password.txt استفاده کنند و رمز عبور حساب کاربری را در متن روشن دریافت کنند؟ من سعی کردم این کار خودم را با ConvertFrom-SecureString انجام دهم اما فایده ای نداشتم که فکر می کردم آن را حس می کنم؟

یادداشت اضافی: کد نیاز به کار بر روی چندین کامپیوتر دارد، بنابراین هیچ مکانیزم رمزنگاری "فقط مکانی" تنها زمانی که با Powershell دیده می شود می تواند در اینجا استفاده شود.