在 powershell 中创建 htpasswd SHA1 密码
Create htpasswd SHA1 password in powershell
我想在 PowerShell 中创建一个基于 SHA1 的 htpasswd 密码。
使用单词 "test" 作为密码我测试了各种功能并且总是得到 SHA1 值:
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
在 htpasswd 文件中对此进行测试
user:{SHA}a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
我无法登录。
使用在线 htpasswd 生成器。例如 https://www.askapache.com/online-tools/htpasswd-generator/ 我得到
user:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=
效果很好。
起初我以为我需要做一个base64 en/decoding,但事实并非如此
有人知道如何从 "test" 到 "qUqP5cyxm6YcTAhz05Hph5gvu9M=" 吗?
At first I thought I need to do a base64 en/decoding
确实是这样的!但是需要编码的并不是字符串"a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",而是它所代表的底层字节数组
$username = 'user'
$password = 'test'
# Compute hash over password
$passwordBytes = [System.Text.Encoding]::ASCII.GetBytes($password)
$sha1 = [System.Security.Cryptography.SHA1]::Create()
$hash = $sha1.ComputeHash($passwordBytes)
# Had we at this point converted $hash to a hex string with, say:
#
# [BitConverter]::ToString($hash).ToLower() -replace '-'
#
# ... we would have gotten "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
# Convert resulting bytes to base64
$hashedpasswd = [convert]::ToBase64String($hash)
# Generate htpasswd entry
"${username}:{{SHA}}${hashedpasswd}"
我想在 PowerShell 中创建一个基于 SHA1 的 htpasswd 密码。
使用单词 "test" 作为密码我测试了各种功能并且总是得到 SHA1 值:
a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
在 htpasswd 文件中对此进行测试
user:{SHA}a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
我无法登录。
使用在线 htpasswd 生成器。例如 https://www.askapache.com/online-tools/htpasswd-generator/ 我得到
user:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=
效果很好。
起初我以为我需要做一个base64 en/decoding,但事实并非如此
有人知道如何从 "test" 到 "qUqP5cyxm6YcTAhz05Hph5gvu9M=" 吗?
At first I thought I need to do a base64 en/decoding
确实是这样的!但是需要编码的并不是字符串"a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",而是它所代表的底层字节数组
$username = 'user'
$password = 'test'
# Compute hash over password
$passwordBytes = [System.Text.Encoding]::ASCII.GetBytes($password)
$sha1 = [System.Security.Cryptography.SHA1]::Create()
$hash = $sha1.ComputeHash($passwordBytes)
# Had we at this point converted $hash to a hex string with, say:
#
# [BitConverter]::ToString($hash).ToLower() -replace '-'
#
# ... we would have gotten "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
# Convert resulting bytes to base64
$hashedpasswd = [convert]::ToBase64String($hash)
# Generate htpasswd entry
"${username}:{{SHA}}${hashedpasswd}"