【发布时间】:2016-09-26 08:11:58
【问题描述】:
我想获得一些帮助来修改此代码以使其循环解密功能以从密钥 (1-26) 输出加密消息。我们最简单的方法是什么?另一个 ForEach 循环?
$key = Read-Host "Key value:"
$msg = Read-Host "Enter Message"
Write-Host "Encrypted Message: " $msg -ForegroundColor "white"
$String = [char[]]$msg
$array = [char[]]$msg
foreach ($letter in $array)
{
$nbr = [int[]][char]$letter
if ($nbr -ge 65 -and $nbr -le 90) #UpperCase
{
[string]$Snbr = $nbr
[int]$Nnbr = $Snbr
[int]$nkey = $key
[int]$Enbr = $Nnbr - $nkey
if ($Enbr -gt 90) {$Enbr = $Enbr - 26}
if ($Enbr -lt 65) {$Enbr = $Enbr + 26}
[string]$ELetter = [char]$Enbr
}
if ($nbr -ge 97 -and $nbr -le 122) #LowerCase
{
[string]$Snbr = $nbr
[int]$Nnbr = $Snbr
[int]$nkey = $key
[int]$Enbr = $Nnbr - $nkey
if ($Enbr -gt 122) {$Enbr = $Enbr - 26}
if ($Enbr -lt 97) {$Enbr = $Enbr + 26}
[string]$ELetter = [char]$Enbr
}
$EMsg = $EMsg + $ELetter
}
Write-Host "PlainText: " $EMsg -ForegroundColor "white"
【问题讨论】:
-
有什么问题?错误的输出,程序崩溃,还是别的什么?
-
是的,输出错误。现在它只显示一条解密的消息。我需要它来显示所有带有所有键的消息。你能建议一个简单的方法应该如何完成吗?另一个 ForEach 循环?
标签: powershell shift caesar-cipher