Yapı
Last updated
Last updated
Sağlanan yapıcılar, TOTP ve HOTP kütüphanelerinin belirli parametrelerle başlatılmasına izin verir:
TOTP
Kurucuları:
TOTP
için iki yapıcı vardır.
Birincisi, period
bir süreyi ve digits
ise çıkış rakam sayısını parametre olarak alır.
İkinci yapıcı, belirli bir hash algoritmasının kullanılmasını sağlayan ek bir parametre olan OTPHashAlgorithm
izin verir.
HOTP
Kurucuları:
HOTP
için iki yapıcı vardır.
Birincisi, counter
bir sayacı ve digits
ise çıkış rakam sayısını parametre olarak alır.
İkinci yapıcı, belirli bir hash algoritmasının kullanılmasını sağlayan ek bir parametre olan OTPHashAlgorithm
izin verir.
Bu yapıcılar, güvenlik gereksinimlerine ve sistem kısıtlamalarına bağlı olarak OTP kitaplıklarının çeşitli konfigürasyonlarla başlatılmasında esneklik sağlar.
Bu bağlamdaki statik işlevler, bir sınıf örneği olmadan çağrılabilecek faydalı işlevlerdir. Bu işlevler, TOTP ve HOTP uygulamalarında yaygın olarak kullanılan temel işlemler sağlar:
CheckValidSecretkey
: Gizli anahtarın geçerli olup olmadığını doğrular.
GenerateRandomSecretKey
: OTP'ler oluşturmak için kullanılabilen belirli bir uzunluğun rastgele gizli bir anahtarı oluşturur.
Base32Encode
: Parametre olarak gönderilen byte dizisini base32 olarak kodlar.
GenerateOTP
fonksiyonu, belirli bir gizli anahtara dayanarak bir kerelik bir şifre (OTP) oluşturmak için kullanılır. Bu işlev hem zaman tabanlı (TOTP) hem de HMAC tabanlı (HOTP) algoritmalar için kullanılabilir.
GenerateOTP(string secretkey)
: Varsayılan hash algoritmasını kullanarak bir OTP oluşturur.
GenerateOTP(string secretkey, OTPHashAlgorithm algorithm)
: Belirli bir hash algoritması kullanarak bir OTP üretir.
secretkey: OTP'yi oluşturmak için kullanılan string
gizli anahtar.
algorithm (Opsiyonel): Kullanılacak hash algoritmayı belirten bir OTPHashAlgorithm
.
Verify
fonksiyonu, bir otp kodunun doğrulama işlemini gerçekleştirir.
public bool Verify(string otpcode, string secretkey)
: Daha önceki işlemlerde belirtilen hash algoritmasına göre OTP kodu doğrulaması yapılır.
public bool Verify(string otpcode, string secretkey, OTPHashAlgorithm algorithm)
: Belirtilen hash algoritmasına göre OTP kodu doğrulaması yapılır.
Her iki yöntem de OTP kodunun geçerli olup olmadığını gösteren bir bool
değer döndürür.
GetOTPUrl
fonksiyonları, özellikle TOTP (zaman tabanlı bir kerelik parola) ve HOTP (HMAC tabanlı tek seferlik parola) yapılandırmalarıyla kullanmak için OTP (bir kerelik parola) URL'i oluşturulmasını kolaylaştırır. Bu URL'ler, OTP Authenticator uygulamalarını ayarlamak için gerekli olan kullanıcı adı, servicename ve gizli anahtar gibi hayati parametreleri içerir. QR kod oluşturmak için kullanılır.
TOTP & HOTP:
public string GetOTPUrl(string username, string servicename, string secretkey)
: Temel OTP Url'i oluşturur.
TOTP:
public string GetOTPUrl(string username, string servicename, string secretkey, int period, int digits, OTPHashAlgorithm algorithm)
: Zaman periyodu, rakam sayısı ve hash algoritması gibi parametrelerin spesifikasyonuna izin veren TOTP'ye özgü bir URL oluşturur.
HOTP:
public string GetOTPUrl(string username, string servicename, string secretkey, int counter, int digits, OTPHashAlgorithm algorithm)
: Sayaç, rakam sayısı ve hash algoritması gibi parametrelerin spesifikasyonuna izin veren HOTP'ye özgü bir URL oluşturur.
Bu esnek yöntemler, OTP hizmetleri ve uygulamaları ile özel entegrasyon sağlar.
Sınıf, ayrıntılı yapılandırmaya izin veren TOTP ve HOTP'ye özgü çeşitli özellikler sağlar:
TOTP:
GetPeriod() / SetPeriod(int period)
: TOTP için zaman dilimini alma ve ayarlama fonksiyonudur.
TOTP & HOTP:
GetAlgorithm() / SetAlgorithm(OTPHashAlgorithm algorithm)
: Hashing algoritmasını getirin veya yapılandırın.
GetDigits() / SetDigits(int digits)
: OTP için basamak sayısını elde edin veya ayarlayın.
HOTP:
GetCounter() / SetCounter(long counter)
: HOTP için sayaç ayarına erişme ve değiştirme fonksiyonudur.
Bu özellikler, OTP üretiminin belirli güvenlik ve performans gereksinimlerini karşılayacak şekilde özelleştirilebilmesini sağlar.
Bu sınıftaki "diğer fonksiyonlar", bir kerelik şifreleri yönetmek ve kullanmak için ek yardımcı özellikler sağlar. Dahil edilen birincil işlev:
TOTP:
GetRemainingTime()
: Bu yöntem, mevcut TOTP'nin süresi dolmadan saniyeler içinde kalan süreyi döndürür. Tokenlerin geçerli süreleri içinde kullanılmasını sağlamak için yararlıdır ve istemci-sunucu süresinin senkronize edilmesine yardımcı olur.