İçeriğe geç

Yerleşik Fonksiyonlar

FonksiyonAçıklamaÖrnek
print(...)Konsola değer yazdırırprint("Merhaba");
input(msg)Kullanıcıdan metin girişi alırstr ad = input("Adınız: ");
inputInt(msg)Kullanıcıdan tam sayı girişi alırint yas = inputInt("Yaşınız: ");
inputFloat(msg)Kullanıcıdan ondalıklı sayı girişi alırfloat boy = inputFloat("Boyunuz: ");
FonksiyonAçıklamaÖrnek
toInt(val)Değeri tam sayıya dönüştürürint x = toInt("42");
toFloat(val)Değeri ondalıklı sayıya dönüştürürfloat y = toFloat("3.14");
toString(val)Değeri metne dönüştürürstr s = toString(100);
toBool(val)Değeri mantıksal değere dönüştürürbool b = toBool(1);
FonksiyonAçıklamaÖrnek
length(arr)Dizinin uzunluğunu döndürürint len = length(arr);
push(arr, val)Diziye eleman eklerpush(arr, 10);
pop(arr)Diziden son elemanı çıkarır ve döndürürint val = pop(arr);
range(n)0’dan n-1’e kadar sayı dizisi oluştururarray r = range(5);

Ağaç-içi (in-tree) SHA-256 üzerine kurulu — OpenSSL bağımlılığı yok, runtime’ın çalıştığı her yerde mevcut.

FonksiyonAçıklamaÖrnek
sha256(s)64 karakter küçük-harf hex özetstr h = sha256(body);
hmac_sha256(key, msg)Anahtarlı MAC (RFC 2104), 64 karakter hexstr sig = hmac_sha256(secret, data);
password_hash(pw)PBKDF2-HMAC-SHA256, kendini tanımlayanstr h = password_hash(pw);
password_verify(pw, stored)password_hash’e karşı sabit-zamanlı doğrulamabool ok = password_verify(pw, h);
secure_token(n)CSPRNG base62 string, n karakterstr t = secure_token(48);
base64_encode(s) / base64_decode(s)Standart base64 (bayt-güvenli)str b = base64_encode(raw);

Rehber:

  • Şifrelerpassword_hash / password_verify. Asla çıplak sha256(pw) saklama (tuzsuz, hızlı brute-force).
  • Oturum / API token’ları, tuzlarsecure_token (randint değil — o kriptografik güvenli değil).
  • İmzalama / kimlik doğrulama (imzalı çerez, webhook imzası, JWT tarzı token) → uzun rastgele bir gizli anahtarla hmac_sha256. MAC’i yeniden hesaplayıp karşılaştırarak doğrula.

hmac_sha256, wings_jwt paketinin HS256 oturum token’ları üretip doğrulamak için kullandığı yapı taşıdır:

import "wings_jwt" as jwt;
str token = jwt.sign_ttl({"sub": "42", "role": "admin"}, SECRET, 3600);
json v = jwt.verify(token, SECRET); // {"ok":1,"claims":{…}} | {"ok":0,"error":…}