当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell prolog 中使用密码

作者:精品下载站 日期:2024-12-14 07:12:44 浏览:13 分类:玩电脑

在 PowerShell prolog 中使用密码


链接第 1 部分 powershell 脚本以创建 aes 加密密码字符串
链接第 2 部分 powershell 脚本以重新转换为纯密码

有一次,一位客户问我如何在本地服务器上存储密码并在 powershell 脚本中使用它来进行身份验证。以纯文本形式存储密码并不是最好的解决方案,所以我认为他应该使用安全字符串。是的,安全字符串可以很容易地重新计算,因此这是另一种装饰门面的方法。为什么不使用使用单独的加密密钥加密的安全字符串,该密钥可以存储在共享等上。这是创建一个将密码转换为两个文件的小脚本的开始。包含加密字符串和对称加密密钥 (AES256) 的一个文本文件。对于身份验证,您需要密钥文件和文本文件。您还可以将网络共享上的这些文件用于帮助台管理员或任何其他目的。

注意:当您使用这些方法加密密码时,您可以在脚本中使用它们,但是任何可以使用谷歌并具有基本知识的人都可以使密码可见。使用特殊权限保护您的密钥文件。如果你失去了它,就没有办法恢复它。

让我们从一些基础知识开始:

在 powershell 中生成随机 AES 密钥:

$aeskeypath = ".\aeskey.key"
$AESKey = New-Object Byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey)
Set-Content $aeskeypath $AESKey 

此代码生成唯一的 AES 256 位密钥并将其存储在文件中。试一下!我们可以用这把钥匙做什么呢? (顺便说一句,不需要将该文件命名为 .key,但出于理解原因,我使用它)。
请参阅此链接以获取更多信息:
https://docs.microsoft.com/en- us/dotnet/standard/security/加密模型

使用 aes 文件进行密码加密

现在我们可以使用这个个人密钥轻松加密密码。
让我们尝试一下:

$pw = Read-Host "type in a password!"-AsSecureString
$pw
$key = Get-Content .\aeskey.key
$encryptpw = $pw | ConvertFrom-SecureString -Key $key
#copy content to file 
Set-Content .\cred.txt $encryptpw

[玩转系统] 在 PowerShell prolog 中使用密码

变量 $encryptpw 包含使用您的个人 AES 256 位密钥加密的个人密码。没有那么糟糕!

[玩转系统] 在 PowerShell prolog 中使用密码

这些是我在以下文章中用来存储、加密、重用密码的基本内容。
注意:如果您更改了这两个文件的任何字符或格式并且没有备份,您将无法找回密码。

我还想展示如何使用此方法对 powershell 控制台内的不同服务进行身份验证。首先是代码:

$username = Read-Host "Type Username!" 
$AESKey = Get-Content .\aeskey.key
$pwdTxt = Get-Content .\cred.txt
$securePwd = $pwdTxt | ConvertTo-SecureString -Key $AESKey
$creds = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securePwd
$creds

[玩转系统] 在 PowerShell prolog 中使用密码

如何使用凭证对象

您现在可以使用对象 $creds 在交换、广告、在线交换或其他服务上进行身份验证。我们用这个方法连接在线兑换:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $creds -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking -Verbose

[玩转系统] 在 PowerShell prolog 中使用密码

现在您可以看到使用这个小脚本可以做什么。
我制作了一些脚本来自动执行将密码转换为两个文件的任务。
如果您喜欢这篇文章,请告诉我点击“有帮助”。

链接第 1 部分 powershell 脚本以创建 aes 加密密码字符串
链接第 2 部分 powershell 脚本以重新转换为纯密码

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯