Generating base64-encoded Authorization headers in a variety of languages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
httpClient.DefaultRequestHeaders.Authorization = | |
new AuthenticationHeaderValue( | |
"Basic", | |
Convert.ToBase64String( | |
System.Text.ASCIIEncoding.ASCII.GetBytes( | |
string.Format("{0}:{1}", username, password)))); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$header = "Authorization: Basic " . base64_encode($username . ':' . $password); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') | |
header = ("Authorization: Basic %s" % base64string) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$header = 'Authorization: Basic ' + Base64.encode64( username + ':' + password ).chomp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$.ajax | |
({ | |
type: "GET", | |
url: "https://www.example.com", | |
dataType: 'json', | |
headers: { | |
"Authorization", btoa(username + ":" + password) | |
}, | |
data: '{}', | |
success: function (){ | |
... | |
} | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var username = 'Test'; | |
var password = '123'; | |
var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64'); | |
var header = {'Host': 'www.example.com', 'Authorization': auth}; | |
var request = client.request('GET', '/', header); |
https://gist.github.com/brandonmwest/a2632d0a65088a20c00a#gistcomment-2345632
PowerShell
$username = 'test' $password = 'password' $base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1} -f $username, $password"))) $base64AuthInfo
This in incorrect, the enclosing double quote should be after {1}, not $password.
$username = 'test' $password = 'password' $base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password))) $base64AuthInfo
In Free Pascal:
uses base64;
header := EncodeStringBase64(Concat(username, ':', password));
in Golang:
client := &http.Client{}
request, err := http.NewRequest("POST","https://example.com", nil)
encodedCredential := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", CLIENT_ID, CLIENT_SECRET)))
request.Header.Add("Authorization", fmt.Sprintf("Basic %s", sEnc))
Line 7 correction for jquery snippet: "Authorization", "Basic " + btoa(username + ":" + password)
PowerShell
$username = 'test' $password = 'password' $base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1} -f $username, $password"))) $base64AuthInfo
The code above doesn't work. Below is the fix.
$username = 'test'
$password = 'password'
$base64AuthInfo = [convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("${username}:${password}")))
$base64AuthInfo
Scala:
val bytesFromString = (username ++ ":" ++ password).getBytes("UTF-8") val urlAuth = "Basic " ++ Base64.encode(bytesFromString)
The right scala implementation which run directly :
val tokenBytes = s"$username:$password".getBytes("UTF-8")
val tokenB64 = new String(java.util.Base64.getEncoder.encode(tokenBytes))
val token = s"Basic $tokenB64"
in JQuery, aren't we missing the 'Basic ' prefix?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Better Perl (avoid line breaks):