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.
Gelişmiş seçenekler
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
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
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
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.
secret + SHA-1/6 digits // but server expects SHA-256/8
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.
system clock 90s fast // code is two steps ahead
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.
secret: "JBSW 0NE8" // contains 0 and 8
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?
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?
JBSWY3DPEHPK3PXP dizesi iyi bilinen RFC test secret'ıdır. Üretilen kod neden telefonumun authenticator uygulamasından farklı?
TOTP ile HOTP arasındaki fark nedir?
8 haneli kodları veya SHA-256 / SHA-512'yi kullanabilir miyim?
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?
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. İlgili Araçlar
Tüm araçları görüntüleyin →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.