C#3.0(.NET Framework 3.5)的cryptographically secure pseudorandom number generator(CSPRNG)是否有快速實現,用於身份驗證令牌?如何在C#中生成密碼安全的僞隨機數字?
44
A
回答
85
using System.Security.Cryptography;
...
using(RandomNumberGenerator rng = new RNGCryptoServiceProvider())
{
byte[] tokenData = new byte[32];
rng.GetBytes(tokenData);
string token = Convert.ToBase64String(tokenData);
}
2
3
這取決於你的意思是什麼快...
沒有真正快速安全的隨機數發生器。如果你想快點,你應該使用常規的隨機類。如果你想要安全,你應該使用Cryptography命名空間中的隨機生成器,但這要慢得多。你根本無法擁有兩者。
+1
如果您願意與本地加密實現進行互操作,您可以獲得優異的性能(比System.Random快幾倍)和安全性。 – CodesInChaos 2014-11-22 13:59:39
+9
@CodesInChaos:所以;快速,安全,簡單 - 選擇任何兩個。 :) – Guffa 2014-11-22 14:24:32
相關問題
- 1. 加密安全PRNG(僞隨機數生成器)
- 2. 加密安全隨機數生成器
- 3. 在perl中生成加密安全的隨機數/字符串
- 4. 使用安全隨機生成隨機密碼
- 5. C#中OAuth隨機數的線程安全隨機數/字符串生成器
- 6. 生成強的僞隨機數字
- 7. 僞隨機數生成
- 8. Matlab:如何生成僞隨機數
- 9. 使用RNGCryptoServiceProvider通過密碼保護僞隨機數生成鹽
- 10. 如何在Codeigniter中爲忘記密碼生成隨機密碼
- 11. 生成短的,僞隨機可驗證字母數字代碼
- 12. 如何生成隨機密碼
- 13. 如何隨機生成密碼Rails 4?
- 14. 如何生成隨機密碼
- 15. 隨機密碼生成
- 16. 生成隨機密碼?
- 17. 隨機密碼生成與
- 18. PHP生成隨機密碼
- 19. 生成隨機密碼
- 20. 隨機密碼生成
- 21. 僞隨機的URL生成
- 22. 在C中生成隨機數字
- 23. 按位高效,統一,加密安全的隨機數生成
- 24. GSL + OMP:線程安全的隨機數生成器在C++
- 25. R生成聚簇的僞隨機數
- 26. 生成可靠的僞隨機數
- 27. 生成25個僞隨機字符串
- 28. 靜態僞隨機字段生成器
- 29. PHP種子,確定性,密碼安全的PRNG(僞隨機數生成器)。可能嗎?
- 30. 非線程安全性是否會增加具有隨機僞隨機數生成器的隨機性?
對WinAPI GUID生成器的密碼分析表明,由於V4 GUID的序列是僞隨機的,給定初始狀態,可以預測到函數UuidCreate返回的下一個250 000個GUID。這就是爲什麼GUID不應用於密碼學,例如,作爲隨機密鑰。 (來自http://en.wikipedia.org/wiki/Globally_Unique_Identifier) – configurator 2009-11-03 16:36:47
這不是專門的密碼術,tho。而且,很難預測機器的初始狀態。 – 2009-11-03 17:07:19
常見的攻擊是對服務器進行DDoS攻擊,直到它重新啓動。然後預測初始狀態(系統時鐘)要容易得多。 – LaJmOn 2012-02-15 16:01:01