Skip to content

TOTP / 2FA Kod Üretici

Base32 secret'tan TOTP/2FA kodu üretin — %100 tarayıcınızda çalışır, secret'ınız cihazınızdan asla çıkmaz. QR kurulumu + kod doğrulama.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Tarayıcınızda yerel olarak hesaplanır — secret'ınız cihazınızdan asla çıkmaz.
Gelişmiş seçenekler
Geçerli kod
------
Sonraki kod: ------
RFC 6238 / RFC 4226 davranışını izler; çıktı yayımlanmış test vektörlerine ve bağımsız bir authenticator uygulamasına karşı çapraz kontrol edilmiştir — Go Tools Güvenlik Ekibi · Jun 12, 2026

TOTP / 2FA Kod Üretici Nedir?

Bir TOTP üretici, paylaşılan bir secret'ı iki faktörlü kimlik doğrulamayı çalıştıran dönen tek kullanımlık koda dönüştürür. TOTP — Zaman Tabanlı Tek Kullanımlık Parola, RFC 6238'de tanımlanmıştır — bir Base32 secret'ı ve geçerli zamanı alır, zamanı sabit adımlara (varsayılan olarak 30 saniye) böler ve kısa bir sayısal kod türetmek için adım sayacı üzerinde bir HMAC çalıştırır. Hem authenticator uygulamanız hem de sunucu aynı secret'ı tutup aynı saati okuduğu için, onu ağ üzerinden hiç değiştirmeden aynı kodu hesaplarlar. 2FA'nın tüm amacı budur: parolanız sızsa bile, bir saldırganın yine de yalnızca secret'ınızın şu anda üretebileceği koda ihtiyacı vardır.

"TOTP algoritması, HOTP algoritmasının zaman tabanlı bir varyantıdır... TOTP = HOTP(K, T), burada T, başlangıç sayaç zamanı T0 ile geçerli Unix zamanı arasındaki zaman adımı sayısını temsil eden bir tam sayıdır." — RFC 6238, Bölüm 4

Bu araç tek bir sayfada üç iş yapar. Herhangi bir Base32 secret'tan geri sayım ve sonraki kod önizlemesiyle canlı bir kod üretir; bir authenticator uygulamasına taradığınız otpauth:// URI'sini ve QR kodunu oluşturarak yepyeni bir secret kurar; ve gerçek sunucuların yeni dönen bir kodu kabul etme şekliyle eşleşerek, bir kodu ±1 zaman adımı toleransıyla bir secret'a karşı doğrular. Bunların tümü, sıfır bağımlılık ve sıfır ağ çağrısıyla tarayıcının yerel Web Crypto API'si aracılığıyla çalışır.

Geliştiriciler sürekli bir TOTP üreticiye başvurur: bir 2FA oturum açmasını ayıklarken bir kullanıcının uygulamasının gösterdiği tam kodu yeniden üretmek için, yeni bir hesap için bir secret ve QR oluşturmak için, sunucudaki bir doğrulama penceresinin kullanıcıların deneyimlediğiyle eşleştiğini onaylamak için ya da iki faktörlü bir akışın uçtan uca testleri için deterministik fixture'lar oluşturmak için. Secret uzun ömürlü bir anahtar olduğu için — ona sahip olan herkes gelecekteki her kodu üretebilir — bir parola gibi korunmalıdır. 2FA'nın yanında duran güçlü parolalar ve kurtarma kodları için bu aracı rastgele parola üreticimizle ve bağımsız bir kayıt görüntüsüne ihtiyacınız olduğunda QR kod üreticisiyle eşleştirin. Kimliği doğrulanmış bir oturumun üzerinde sıklıkla yer alan JSON Web Token'ları imzalamak için JWT encoder'a bakın.

// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
  // Decode the Base32 secret to raw bytes (A-Z, 2-7)
  const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
  let bits = '';
  for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
    bits += alpha.indexOf(c).toString(2).padStart(5, '0');
  const bytes = new Uint8Array(
    bits.match(/.{8}/g).map((b) => parseInt(b, 2)));

  // Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
  const counter = Math.floor(time / 1000 / 30);
  const msg = new Uint8Array(8);
  let c = counter;
  for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }

  const key = await crypto.subtle.importKey(
    'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
  const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));

  // Dynamic truncation (RFC 4226) -> 6-digit code
  const off = hmac[hmac.length - 1] & 0x0f;
  const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
              (hmac[off + 2] << 8) | hmac[off + 3];
  return (bin % 1_000_000).toString().padStart(6, '0');
}

const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds

Temel Özellikler

Geri Sayımlı Canlı Kod

Bir Base32 secret yapıştırın ve geçerli TOTP kodu, 30 saniyelik bir geri sayım halkası ve bir sonraki kodun önizlemesiyle anında görünür — Üret düğmesi yok, bekleme yok.

Secret ve QR Kurulumu

Rastgele bir Base32 secret üretin, ardından Google Authenticator, Authy veya 1Password'e doğrudan taramak için otpauth:// URI'sini ve bir QR kodunu alın.

Yerleşik Kod Doğrulayıcı

Bir kodu, gerçek sunucuların kullandığı aynı ±1 zaman adımı toleransıyla bir secret'a karşı kontrol edin, böylece yeni dönen bir kod yine de doğrulanır.

Yapılandırılabilir Algoritma ve Haneler

SHA-1, SHA-256 ve SHA-512 arasında geçiş yapın, 6 veya 8 hane seçin ve herhangi bir sağlayıcının gereksinimleriyle eşleştirmek için 30sn veya 60sn periyot ayarlayın.

Secret Tarayıcınızdan Asla Çıkmaz

Her kod yerel olarak, yerel Web Crypto API aracılığıyla hesaplanır. Hiçbir şey yüklenmez, günlüğe kaydedilmez veya depolanmaz — çevrimdışıyken bile doğrulanabilir şekilde.

Sıfır Bağımlılık

Yalnızca tarayıcının Web Crypto API'si üzerine kuruludur — üçüncü taraf kitaplık yok, telemetri yok ve herhangi bir türde ağ çağrısı yok.

TOTP Üretici Örnekleri

Standart 6 Haneli TOTP (SHA-1, 30sn)

secret: JBSWY3DPEHPK3PXP
algorithm: SHA-1
digits: 6
period: 30s
Code: 282760  ·  expires in 30s

Her yaygın uygulamanın kullandığı varsayılan ayarlarla kanonik RFC 6238 test secret'ı — SHA-1, 6 hane, 30 saniyelik periyot. Kod zaman tabanlıdır, bu yüzden kesin değer geçerli zamana bağlıdır; araç canlı bir geri sayım ve bir sonraki kodu gösterir.

8 Haneli Kurumsal TOTP (SHA-256)

secret: JBSWY3DPEHPK3PXP
algorithm: SHA-256
digits: 8
period: 30s
Code: 31094217  ·  expires in 30s

Bazı kurumsal ve yüksek güvenlikli sistemler, SHA-1 varsayılanı yerine SHA-256 ile imzalanmış 8 haneli kodlar verir. Algoritmayı, hane sayısını ve periyodu sunucunuzun beklediğiyle tam olarak eşleştirin, aksi takdirde üretilen kod doğrulanmaz.

Authenticator Uygulamaları için otpauth:// Kurulum URI'si

issuer: Acme
account: alice@example.com
secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30

Araç standart bir otpauth:// URI'si oluşturur ve onu bir QR kodu olarak işler. Secret'ı cihazınıza kaydetmek için Google Authenticator, Authy veya 1Password ile tarayın — ya da URI'yi doğrudan yapıştırın.

TOTP Üretici Nasıl Kullanılır

  1. 1

    Bir Base32 Secret Yapıştırın

    Üret sekmesinde, Base32 secret'ınızı yapıştırın (örneğin JBSWY3DPEHPK3PXP). Geçerli TOTP kodu, 30 saniyelik bir geri sayımla anında görünür — Üret düğmesi yoktur.

  2. 2

    Gelişmiş Seçenekleri Ayarlayın (isteğe bağlı)

    Sağlayıcınızın verdiğiyle eşleştirmek için algoritmayı (SHA-1/256/512), hane sayısını (6 veya 8) ya da periyodu (30 veya 60sn) değiştirmek üzere gelişmiş seçenekleri açın.

  3. 3

    Kurun veya Doğrulayın

    Bir authenticator uygulaması için secret ve QR üretmek üzere Kurulum sekmesini ya da bir kodu ±1 zaman adımı toleransıyla bir secret'a karşı kontrol etmek üzere Doğrula sekmesini kullanın.

Yaygın Hatalar

Uyuşmayan Algoritma veya Haneler

SHA-256 veya 8 hane için verilen bir secret, SHA-1 / 6 hane varsayılanları altında tamamen farklı bir kod üretir. Sağlayıcının parametreleriyle tam olarak eşleştirin.

✗ Yanlış
secret + SHA-1/6 digits  // but server expects SHA-256/8
✓ Doğru
algorithm: SHA-256, digits: 8  // match the otpauth:// URI

Saat Kayması

Cihaz saati bir zaman adımından fazla saparsa kod doğrulanmaz. Kodları karşılaştırmadan önce sistem saatini senkronize edin.

✗ Yanlış
system clock 90s fast  // code is two steps ahead
✓ Doğru
enable NTP / automatic time  // code aligns with server

Geçersiz Base32 Secret

Base32 yalnızca A–Z ve 2–7 kullanır. Yazdırılan bir anahtardaki boşluklar sorun değildir, ancak 0, 1 veya 8 geçerli Base32 değildir ve kod çözmede başarısız olur.

✗ Yanlış
secret: "JBSW 0NE8"  // contains 0 and 8
✓ Doğru
secret: "JBSWY3DPEHPK3PXP"  // valid Base32

Yaygın Kullanım Senaryoları

Bir 2FA Oturum Açma Akışını Ayıkla
Bir kullanıcının authenticator uygulamasının gösterdiği tam kodu yeniden üretin, böylece iki faktörlü bir oturum açmanın neden reddedildiğini izleyebilirsiniz.
Yeni Bir Hesap Kaydet
Yeni bir Base32 secret ve QR kodu üretin, ardından 2FA'yı kurmak için onu Google Authenticator, Authy veya 1Password'e tarayın.
Sunucunuzun Penceresini Doğrula
Arka uçunuzun yeni dönen bir kodu kabul ettiğini ve süresi dolmuş birini reddettiğini onaylamak için kodları bir secret'a karşı doğrulayın.
Uçtan Uca Test Fixture'ları Oluştur
İki faktörlü kimlik doğrulama akışının otomatik testlerini yürütmek için bilinen bir secret'tan deterministik TOTP kodları hesaplayın.
Kurumsal Ayarlarla Eşleştir
Bir sağlayıcı SHA-1 / 6 hane varsayılanlarından ayrıldığında, bir uyumsuzluğu ayıklamak için 8 haneli veya SHA-256 kodlarını yeniden üretin.
Erişimi Hızla Kurtar
Telefonunuz kullanılamadığında yedeklenmiş bir secret'tan geçerli kodu üretin — secret'ın tek kullanımlık bir kopyasını kullanarak.

Teknik Ayrıntılar

RFC 6238 / RFC 4226 Uyumlu
RFC 4226'daki HOTP dinamik kısaltma algoritmasının üzerine, seçilebilir SHA-1, SHA-256 ve SHA-512 ile RFC 6238'e göre TOTP uygular.
Yerel Web Crypto HMAC
Kodlar, big-endian zaman adımı sayacı üzerinde crypto.subtle HMAC aracılığıyla türetilir. Base32 kod çözme ve kısaltma tamamen tarayıcıda çalışır.
Standart otpauth:// URI'leri, Sıfır Bağımlılık
Kurulum URI'leri, issuer, algoritma, haneler ve periyot parametreleriyle Key Uri Format'ı (otpauth://totp) izler. Harici kitaplık yok, ağ çağrısı yok.

En İyi Uygulamalar

Secret'ı Bir Parola Gibi Ele Al
Base32 secret'a sahip olan herkes gelecekteki her kodu üretebilir. Onu bir secret yöneticisinde saklayın, asla sürüm kontrolünde tutmayın ve burada test secret'larını tercih edin.
Saatleri Senkronize Tut
TOTP doğru zamana bağlıdır. Kodların doğrulama penceresi içinde hizalanması için sunucularda ve cihazlarda ağ zamanı senkronizasyonunu etkinleştirin.
Gerekmedikçe Varsayılanlara Bağlı Kal
SHA-1, 6 hane ve 30 saniyelik periyot uygulama uyumluluğunu en üst düzeye çıkarır. Yalnızca sağlayıcınız zorunlu kıldığında 8 haneye veya SHA-256/512'ye geçin.

TOTP / 2FA Üretici SSS

Çevrimiçi bir TOTP / 2FA üretici kullanmak güvenli mi?
Bununla, evet — ve nedeni hiçbir şeyin tarayıcınızdan asla çıkmamasıdır. Yazdığınız Base32 secret, otpauth:// URI'si ve üretilen kod tamamen yerel olarak yerel Web Crypto API ile hesaplanır. Hiçbir ağ isteği, günlükleme, depolama veya girdinize bağlı analitik yoktur — bunu internetten bağlantınızı keserek ve aracın çalışmaya devam ettiğini izleyerek doğrulayabilirsiniz. Bu, secret'ınızı bir sunucuya POST eden ve operatörün kodlarınızı sonsuza dek üretebileceği şüpheli bir üreticinin tam tersidir. TOTP secret'ı uzun ömürlü, paylaşılan bir anahtardır, bu yüzden en güvenli alışkanlık yine de yalnızca deneme yapmanız gerektiğinde tek kullanımlık veya test secret'larını tercih etmektir.
TOTP nedir ve Base32 secret nedir?
TOTP (Zaman Tabanlı Tek Kullanımlık Parola, RFC 6238'de tanımlanmıştır), authenticator uygulamalarındaki dönen 6 haneli kodların arkasındaki algoritmadır. Paylaşılan bir secret'ı, sabit adımlara (genellikle 30 saniye) bölünmüş geçerli zamanla bir HMAC aracılığıyla birleştirerek hem cihazınızın hem de sunucunun bağımsız olarak hesaplayabileceği kısa bir kod üretir. Secret paylaşılan anahtardır ve neredeyse her zaman Base32 ile yazılır — büyük harf A–Z ve 2–7 rakamları — çünkü bu alfabe büyük/küçük harf duyarsızdır ve yazması ya da bir QR koduna kodlanması kolaydır. JBSWY3DPEHPK3PXP dizesi iyi bilinen RFC test secret'ıdır.
Üretilen kod neden telefonumun authenticator uygulamasından farklı?
İki TOTP kodunun uyuşması için dört şeyin eşleşmesi gerekir. İlki, saat: TOTP geçerli zamana bağlıdır, bu yüzden bilgisayar veya telefon saatiniz bir adımdan fazla sapmışsa kodlar ayrışır — sistem saatinizi senkronize edin ve yeniden deneyin. İkincisi, algoritma: bu araç SHA-1'i varsayar (çoğu uygulamanın kullandığı), ancak secret'ınız SHA-256 veya SHA-512 için verildiyse burada da onu seçmelisiniz. Üçüncüsü, haneler ve periyot: 6'ya karşı 8 hane veya 30sn'ye karşı 60sn pencere, tamamen farklı kodlar üretir. Dördüncüsü, secret'ın kendisi — yanlış yazılan tek bir Base32 karakteri her kodu değiştirir. Dördünü de hizalayın, kodlar eşleşecektir.
TOTP ile HOTP arasındaki fark nedir?
İkisi de aynı HMAC tabanlı tek kullanımlık parola ailesinden gelir, ancak kodu neyin yönlendirdiği konusunda ayrışırlar. HOTP (RFC 4226) sayaç tabanlıdır: her kod artan bir sayaca bağlıdır, bu yüzden bir kod kullanılana ve sayaç ilerleyene kadar geçerli kalır. TOTP (RFC 6238) zaman tabanlıdır: sayacı sabit adımlara bölünmüş geçerli zamanla değiştirir, bu yüzden kodlar her 30 saniyede bir otomatik olarak döner. TOTP aslında sayacı, Unix epoch'undan bu yana geçen zaman adımı sayısına ayarlanmış HOTP'dir. Bu araç, Google Authenticator, Authy ve 1Password'ün varsayılan olarak kullandığı TOTP'yi üretir.
8 haneli kodları veya SHA-256 / SHA-512'yi kullanabilir miyim?
Evet. Algoritmayı SHA-256 veya SHA-512 olarak değiştirmek, haneleri 8'e ayarlamak veya periyodu 60 saniyeye değiştirmek için gelişmiş seçenekleri açın. Bu ayarlar var çünkü bazı kurumsal ve bankacılık sistemleri daha uzun kodlar veya daha güçlü hash'ler gerektirir. Yine de, hizmetlerin büyük çoğunluğu — ve her yaygın tüketici authenticator uygulaması — SHA-1, 6 hane ve 30 saniyelik periyot varsayılanlarını kullanır, bu yüzden sağlayıcınızın kurulum talimatları aksini söylemedikçe onları olduğu gibi bırakın. Ne seçerseniz seçin, aracın ürettiği otpauth:// URI'si bu parametreleri kaydeder, böylece uygulamanız secret'ı doğru şekilde kaydeder.
Bu secret'ı Google Authenticator, Authy veya 1Password'e nasıl eklerim?
Bir secret üretmek (veya yapıştırmak) için Kurulum sekmesine geçin, ardından ya QR kodunu tarayın ya da otpauth:// URI'sini kopyalayın. Google Authenticator veya Authy'de ekle düğmesine dokunun ve kameranızı ekrandaki QR'a yöneltmek için QR kodu tara'yı seçin ya da Kurulum anahtarı gir'i seçip eşleşen hesap adı ve algoritmayla Base32 secret'ı yapıştırın. 1Password'de bir oturum açma öğesini düzenleyin, bir Tek Kullanımlık Parola alanı ekleyin ve otpauth:// URI'sini doğrudan yapıştırın. Belgeleme için bağımsız bir QR görüntüsüne mi ihtiyacınız var? QR kod üreticimizi kullanın ve etrafındaki rastgele secret'lar ve kurtarma kodları için rastgele parola üreticisini kullanın.

Bcrypt Karma Oluşturucu ve Doğrulayıcı

Güvenlik Araçları

bcrypt şifre karmalarını çevrimiçi oluşturun ve doğrulayın — ayarlanabilir maliyet, $2b$/$2a$/$2y$ önekleri. %100 tarayıcınızda; şifreniz asla yüklenmez.

JWT Çözücü

Güvenlik Araçları

Ücretsiz JWT çözücümüzle JWT token'larını online çözün. header, payload, signature, son kullanma, algoritma ve claim'leri anında inceleyin. %100 tarayıcıda çalışır — token'ınız cihazınızdan ayrılmaz. Kayıt yok, izleme yok.

JWT Oluşturucu ve Kodlayıcı

Güvenlik Araçları

Ücretsiz online JWT oluşturucu ve kodlayıcı. header ve payload'ı oluşturun, HS256, RS256 ya da ES256 ile anında imzalayın. %100 tarayıcıda çalışır — gizli anahtarınız ve özel anahtarınız cihazınızdan ayrılmaz.

Ücretsiz JWT Gizli Anahtar Oluşturucu — HS256/384/512

Güvenlik Araçları

HS256/384/512 için güçlü, RFC uyumlu bir JWT gizli anahtarı üretin. %100 tarayıcınızda; base64url, base64 veya hex; .env için tek tıkla kopyalayın.

MD5 Özet Üretici ve Dosya Sağlama Aracı

Güvenlik Araçları

MD5, SHA-256, SHA-1 ve SHA-512 özetlerini online ücretsiz üretin. Tarayıcınızda metin veya dosya özeti alın, sağlama değerlerini doğrulayın ve sonuçları kopyalayın. Kayıt gerekmez.

Rastgele Şifre Üretici — Özelleştirilebilir ve Güvenli

Güvenlik Araçları

Anında güçlü rastgele şifreler üretin — ücretsiz, %100 tarayıcınızda. Uzunluk ve karakterleri özelleştirin, entropi analiziyle 50'ye kadar toplu üretim.