Kimlik doğrulama jetonları için C# 3.0 (.NET Framework 3.5) için cryptographically secure pseudorandom number generator (CSPRNG) hızlı uygulaması var mı?C# kriptografik olarak güvenli bir sözde sayı üretebilir miyim?
cevap
using System.Security.Cryptography;
...
using(RandomNumberGenerator rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);
string token = Convert.ToBase64String(tokenData);
}
hızlı derken ne olduğuna bağlıdır RNGCryptoServiceProvider sınıf
...
hayır gerçekten hızlı rasgele jeneratör güvenli yoktur. Eğer hızlı istersen, normal Rastgele sınıfını kullanmalısın. Güvenli olmak isterseniz, Kriptografi ad alanında rastgele üreteci kullanmalısınız, ancak bu önemli ölçüde daha yavaştır. Sadece ikisine sahip olamazsın.
Yerel bir kripto uygulamasıyla ortak çalışma yapmak istiyorsanız, hem mükemmel performansa (System.Random'dan birkaç kat daha hızlı) hem de güvenliğe sahip olabilirsiniz. – CodesInChaos
@CodesInChaos: So; hızlı, güvenli, basit - herhangi birini iki seçin. :) – Guffa
- 1. C'de kriptografik olarak güvenli bir sözde sayı nasıl oluşturulur?
- 2. PHP ile kriptografik olarak güvenli rastgele sayıları nasıl üretiyorsunuz?
- 3. Bir ip/jeton kriptografik olarak güvenli kılan nedir?
- 4. C#/XNA sözde Rastgele sayı oluşturma
- 5. Rasgele Sayılar Nesnel-C İçinde Güvenli Oluşturma
- 6. Kriptografik İstisna - Hatalı Veriler
- 7. Kurucuya bağlı olarak bir değer atabilir miyim?
- 8. Sözde kodda bir algoritma yazma
- 9. Kaynak denetimi .csproj ve diğer Visual Studio dosyaları yerine üretebilir miyim?
- 10. Nasıl güvenli bir şekilde C++
- 11. Fortran90 - C# Dönüştürme Sayı
- 12. C++ onaltılık sayı biçimi
- 13. Sadece bir sayı ekleyerek bir yineleyici ekleyebilir miyim?
- 14. C# .NET'de büyük sayı
- 15. Bir sözde öğenin üzerine geldiğinde, diğer sözde öğeyi görünmesini sağlayın.
- 16. json anahtarları sayı olarak
- 17. Bir KeyEventArg bir harf veya sayı olup olmadığını belirleyebilir miyim?
- 18. C: Bir Dosya için Güvenli Oturum Açma
- 19. Referans olarak dönmek için bir C++ 11 lambda zorlayabilir miyim?
- 20. Kriptografik hash "abc" sha1 hash Mathematica
- 21. c neden bu bir negatif sayı yazdırıyor?
- 22. C# 'de Basit Matematik Sayı #
- 23. Bir sayıyı pozitif sayı olarak doğrulayın
- 24. Statik olarak bağlantılı C++ kütüphanelerinden istisnalar atmak güvenli değil mi?
- 25. Neden sözde bir sınıf denir?
- 26. Baz64 resimlerini yerel depolama alanında güvenli bir şekilde saklayabilir miyim?
- 27. Task.Delay'ı bir zamanlayıcı olarak kullanabilir miyim?
- 28. Derleme süresinde, muhtemelen şablonlar kullanarak bir sınıf seçmek için sabit bir sayı kullanabilir miyim?
- 29. NextDouble ile Rastgele Sayı (C#)
- 30. C# WPF comboBox garip sayı
WinAPI GUID oluşturucusunun kriptanalizinde, V4 GUID'leri dizisi rasgele olarak rastlandığından, ilk duruma göre, UuidCreate işlevi tarafından döndürülen bir sonraki 250 000 GUID değerini tahmin edebilir. Bu nedenle GUID'ler, örneğin rasgele anahtarlar gibi kriptografide kullanılmamalıdır. (http://en.wikipedia.org/wiki/Globally_Unique_Identifier) – configurator
Bu özellikle kriptografi değil, tho. Ve makinenin başlangıç durumunu tahmin etmek zor olurdu. –
Genel bir saldırı, yeniden başlatılıncaya kadar DDoS sunucusuna bağlanmaktır. Daha sonra başlangıç durumunu (sistem saati) tahmin etmek çok daha kolay. – LaJmOn