Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Konwersja z PowerShell (c#) na PHP
busterek
post 6.11.2024, 13:21:04
Post #1





Grupa: Zarejestrowani
Postów: 109
Pomógł: 0
Dołączył: 30.07.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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.

Ten post edytował busterek 6.11.2024, 13:20:55
Go to the top of the page
+Quote Post
gitbejbe
post 8.01.2025, 11:57:36
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


  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, '+/', '-_'), '=');
Go to the top of the page
+Quote Post
Vixon
post 8.01.2025, 15:32:32
Post #3





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.12.2024

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.05.2025 - 23:14