Skip to content

7. Signature Hash Değerini Oluşturun ​

Signature Oluşturma (SHA-256 + Base64) ​

Signature Text oluşturulduktan sonra, bu metin SHA-256 algoritması ile hashlenir ve sonuç Base64 formatına çevrilir. Bu işlem, API güvenliğinin kritik bir adımıdır.

İşlem Adımları ​

  1. Signature Text daha önce belirtilen kurallara göre hazırlanır.
    • client_token_hash + secret_key + nonce + timestamp + body
    • Body dahil tüm alanlar orijinal ve değişmemiş olmalıdır.
  2. SHA-256 Hashleme
    • Signature Text'in UTF-8 byte dizisine çevrilir.
    • SHA-256 algoritması uygulanır.
  3. Base64 Encode
    • SHA-256 çıktısı Base64 formatına çevrilir.
    • Bu sonuç, API çağrısında kullanılacak signature değeridir.

Kod Örnekleri ​

Java ​

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

MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digest = md.digest(signatureText.getBytes(StandardCharsets.UTF_8));
String signature = Base64.getEncoder().encodeToString(digest);

C# ​

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

byte[] bytes = Encoding.UTF8.GetBytes(signatureText);
using var sha256 = SHA256.Create();
byte[] hashBytes = sha256.ComputeHash(bytes);
string signature = Convert.ToBase64String(hashBytes);

JavaScript / TypeScript (Node.js) ​

javascript
import crypto from 'crypto';

const hash = crypto.createHash('sha256').update(signatureText, 'utf8').digest('base64');
const signature = hash;

Dikkat Edilecek Noktalar

  • Signature Text tek bir karakter bile değişirse geçersiz olur.
  • Body'nin satır sonları, boşluklar ve JSON property sırası kesinlikle değiştirilmemelidir.
  • UTF-8 encoding kullanılması zorunludur.

Örnek Signature ​

text
YHYQ5a6UVUjkcJX/EBLLrLbKreSJCC858zqDoH+2EiM=