Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja z PowerShell (c#) na PHP
Forum PHP.pl > Forum > PHP
busterek
Witam społeczność.
Podpowiedzcie proszę, jak skonwertować taki kawałek kodu z PowerShell, czy c# na PHP?


$randomNumberGenerator = [Security.Cryptography.RandomNumberGenerator]::Create()
$randomBytes = [byte[]]::new(32)
$randomNumberGenerator.GetBytes($randomBytes)

$codeChallenge = [Convert]::ToBase64String([Security.Cryptography.SHA256]::Create().ComputeHash([
Text.Encoding]::UTF8.GetBytes($codeVerifier)))


Zrobiłem coś takiego, tylko nie wiem czy dobrze:


$bytes = '';
for ($i = 0; $i < 32;$i++)
{
$byte = random_bytes(1);
$bytes .= $byte;
}
$codeVerifier = base64_encode($bytes);

$codeChallengeHash = hash('sha256', $codeVerifier);
$codeChallenge = str_replace('/', '_', $codeChallengeHash);

Pomoże ktoś?



Udało się. Wystarczył trzeci parametr funkcji hash() ustawić na true. I działa.
gitbejbe
  1. $randomBytes = random_bytes(32);
  2.  
  3. $codeVerifier = bin2hex($randomBytes);
  4.  
  5. $codeChallenge = base64_encode(hash('sha256', $codeVerifier, true));
  6.  
  7. $codeChallenge = rtrim(strtr($codeChallenge, '+/', '-_'), '=');
Vixon
Cytat(busterek @ 6.11.2024, 13:21:04 ) *
Witam społeczność.
Podpowiedzcie proszę, jak skonwertować taki kawałek kodu z PowerShell, czy c# na PHP?


$randomNumberGenerator = [Security.Cryptography.RandomNumberGenerator]::Create()
$randomBytes = [byte[]]::new(32)
$randomNumberGenerator.GetBytes($randomBytes)

$codeChallenge = [Convert]::ToBase64String([Security.Cryptography.SHA256]::Create().ComputeHash([
Text.Encoding]::UTF8.GetBytes($codeVerifier)))


Zrobiłem coś takiego, tylko nie wiem czy dobrze:


$bytes = '';
for ($i = 0; $i < 32;$i++)
{
$byte = random_bytes(1);
$bytes .= $byte;
}
$codeVerifier = base64_encode($bytes);

$codeChallengeHash = hash('sha256', $codeVerifier);
$codeChallenge = str_replace('/', '_', $codeChallengeHash);

Pomoże ktoś?



Udało się. Wystarczył trzeci parametr funkcji hash() ustawić na true. I działa.

$bytes = random_bytes(32);
$codeVerifier = base64_encode($bytes);

$codeChallengeHash = hash('sha256', $codeVerifier, true);
$codeChallenge = rtrim(strtr(base64_encode($codeChallengeHash), '+/', '-_'), '=');
To powinno być zgodne z algorytmem PKCE
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.