Help us shape the future of Go! Take the 2026 Go Developer Survey

totp

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package totp, RFC 6238 zaman tabanlı tek kullanımlık kodları üretir ve doğrular.

NEDEN ELLE YAZILDI: TOTP, HMAC üzerine ~40 satırlık bir belirtim ve RFC 6238 RESMÎ TEST VEKTÖRLERİ yayımlıyor — yani doğruluğu iddia edilmiyor, ölçülüyor (totp_test.go). Kimlik doğrulamanın kalbine duruma göre denetlenmesi gereken bir bağımlılık koymamak, bu ölçüm mümkünken tercih edilir.

Index

Constants

View Source
const (
	Digits = 6
	Period = 30 * time.Second
	// SecretBytes, üretilen sırrın uzunluğu. RFC 4226 en az 128 bit
	// istiyor, 160 bit öneriyor; base32'de 32 karakter ediyor.
	SecretBytes = 20
)

* Parametreler. * * ⚠️ SHA-1 ve 6 hane, RFC 6238'in varsayılanı ve kimlik doğrulayıcı * uygulamalarının (Google Authenticator, Aegis, 1Password) fiilen * desteklediği tek birleşim. "Daha güçlü" diye SHA-256 seçmek, * kullanıcının telefonundaki uygulamanın sessizce YANLIŞ kod üretmesi * demek olurdu — hesabın kilitlenmesi, güvenlik kazancı değil.

View Source
const Skew = 1

* Skew, kabul edilen adım toleransı (her yönde). * * ⚠️ 1 ADIM, yani ±30 saniye. Gerekçe: telefon saatiyle sunucu saati * birkaç saniye kayabilir ve kullanıcı kodu okuyup yazarken adım * sınırını geçebilir. Daha geniş bir pencere (±2, ±3) her kodu 2,5–3,5 * dakika geçerli kılar — çalınan bir kodun kullanılabilir ömrünü * gereksizce uzatır.

Variables

This section is empty.

Functions

func Code

func Code(secret string, t time.Time) (string, error)

Code, verilen an için beklenen kodu üretir.

func NewSecret

func NewSecret() (string, error)

NewSecret, yeni bir paylaşılan sır üretir.

func StepAt

func StepAt(t time.Time) int64

StepAt, bir anın adım numarası — çağıranın tekrar koruması için.

func URI

func URI(issuer, account, secret string) string

* URI, kimlik doğrulayıcı uygulamasının okuduğu otpauth bağlantısı. * * ⚠️ issuer HEM yolda HEM parametrede: uygulamaların bir kısmı birini, * bir kısmı diğerini okuyor. Yalnızca birini yazmak, hesabın telefonda * "issuer" olmadan görünmesine yol açıyor — iki bastion kullanan biri * hangi kodun hangisine ait olduğunu ayırt edemez.

func Verify

func Verify(secret, code string, now time.Time) (ok bool, usedStep int64, err error)

* Verify, kodu doğrular ve HANGİ ADIMIN kullanıldığını döner. * * ⚠️ ADIM DIŞARI VERİLİYOR ÇÜNKÜ TEKRAR KORUMASI ÇAĞIRANIN İŞİ. TOTP'nin * kendisi bir kodun daha önce kullanılıp kullanılmadığını bilemez: * aynı kod 30 saniye boyunca geçerlidir. Omuz üstünden okuyan ya da * araya giren biri, kodu aynı pencerede İKİNCİ kez kullanabilir. * Kullanılan adımı saklamak ve tekrarını reddetmek zorunlu * (bkz. store.UseTOTPStep). * * used=false dönüşü, "yanlış kod" ile "geçersiz sır"ı ayırmıyor * bilerek: ikisi de kullanıcıya aynı cevabı vermeli.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL