啟動軟體輸入密碼

Guyuan-發表於2024-05-11

# 硬編碼的正確密碼的雜湊值(這只是一個示例,你應該使用更安全的方法來儲存和驗證密碼)
$correctPasswordHash = "cc0c306017c7d88cb92009d56e2e31c1d2e2a97d989dc5c27cb8f65d69e8aad7" # 替換為實際密碼的雜湊值

# 讀取使用者輸入的密碼
$userPassword = Read-Host "please input IDEA start password..." -AsSecureString

# 將SecureString轉換為位元組陣列,然後計算其雜湊值(這裡使用SHA256作為示例)
$byteArray = ConvertFrom-SecureString $userPassword

# 將SecureString轉換為普通的字串(這通常是不安全的,因為會暴露明文密碼)
# 注意:在實際應用中,你應該避免這樣做,而是直接在SecureString上操作
$passwordPlain = (New-Object System.Net.NetworkCredential("", $userPassword)).Password

# 轉換為位元組陣列
$byteArray = [System.Text.Encoding]::UTF8.GetBytes($passwordPlain)

# 建立SHA256雜湊演算法的例項
$sha256 = [System.Security.Cryptography.SHA256]::Create()

# 計算雜湊值
$hashBytes = $sha256.ComputeHash($byteArray)

# 將位元組陣列轉換為十六進位制字串
$passwordHash = -join ($hashBytes | ForEach-Object { $_.ToString("x2") })

# 檢查雜湊值是否匹配
if ($passwordHash -eq $correctPasswordHash) {
# 密碼正確,啟動IDEA
Start-Process "C:\app_install\IDEA2020\bin\idea64.exe"
Write-Host "STARTED IDEA"
} else {
# 密碼錯誤,顯示錯誤訊息並退出
Write-Host "PASSWORD ERROR" -ForegroundColor Red
}

相關文章