# 硬编码的正确密码的哈希值(这只是一个示例,你应该使用更安全的方法来存储和验证密码)
$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
}
标签:SecureString,byteArray,System,密码,哈希,软件,SHA256,输入 From: https://www.cnblogs.com/botaoli/p/18186721