Skip to content

2. Client Token Hash Oluşturun ​

Client Token Nedir? ​

Client Token, her bir entegratör veya uygulamanın sistemde benzersiz şekilde tanımlanmasını sağlayan özel bir anahtar değeridir. Bu token, API’ye erişim için kimlik doğrulamada kullanılır ve her istekle birlikte HTTP Header üzerinden açık olarak gönderilir.

Bununla birlikte, güvenlik katmanını artırmak için imza (x_signature) hesaplama sürecinde token’ın doğrudan değeri değil, SHA-256 hashlenmiş ve Base64 ile encode edilmiş hali kullanılır.

Önemli Not

Client Token değeri yalnızca kimlik doğrulama için kullanılır; hiçbir koşulda sabit kodlanmamalı (hardcoded) ve güvenli ortamlardan (örn. environment variable, secrets manager) okunmalıdır.

Nasıl Üretilmeli? ​

Client Token değerini imza hesaplamasında kullanabilmek için şu adımlar takip edilir:

  1. Client Token String’i alınır → Size sistem tarafından özel olarak tanımlanan token değeri.
  2. SHA-256 ile hashlenir → Hash fonksiyonu ile geri döndürülemez, sabit uzunluklu bir değer elde edilir.
  3. Base64 formatına encode edilir → Hash sonucu okunabilir ve taşınabilir bir formata dönüştürülür.

Örnek Kodlar ​

java
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;

public class ClientTokenUtil {
    public static void main(String[] args) throws Exception {
        String clientToken = "myClientToken123";

        // 1. SHA-256 hash
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest(clientToken.getBytes(StandardCharsets.UTF_8));

        // 2. Base64 encode
        String encodedToken = Base64.getEncoder().encodeToString(hash);
        
        System.out.println("Encoded Token: " + encodedToken);
    }
}
C#

using System;
using System.Security.Cryptography;
using System.Text;

class Program
{
    static void Main()
    {
        string clientToken = "myClientToken123";

        // 1. SHA-256 hash
        using (SHA256 sha256 = SHA256.Create())
        {
            byte[] hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(clientToken));

            // 2. Base64 encode
            string encodedToken = Convert.ToBase64String(hashBytes);
            
            Console.WriteLine($"Encoded Token: {encodedToken}");
        }
    }
}

Örnek Client Token ​

text
8e414ff7-5faf-407b-b084-2b5b2b7e0099

Örnek Client Token Hashli Hali: ​

text
MtvH3Fh746S86CT6ArkM01OCbNTsrk+KnTDf2a6EKaM=