Pourquoi utiliser le C# Système de classe.Aléatoire à tous au lieu de Système.De sécurité.La cryptographie.RandomNumberGenerator?

Pourquoi quelqu'un usage "standard" générateur de nombres aléatoires à partir de Système.Aléatoire à tous au lieu de toujours à l'aide de la sécurité cryptographique générateur de nombres aléatoires à partir de Système.De sécurité.La cryptographie.RandomNumberGenerator (ou de ses sous-classes, car RandomNumberGenerator est abstrait)?

Nate Lawson nous dit dans son Google Tech Talk présentation "Crypto Strikes Back" à la minute 13:11 ne pas utiliser le "standard" des générateurs de nombres aléatoires à partir de Python, Java et C# et d'utiliser à la place la sécurité cryptographique version.

Je sais faire la différence entre les deux versions de générateurs de nombres aléatoires (voir question 101337).

Mais ce raisonnement est-il de ne pas toujours utiliser le secure générateur de nombre aléatoire? Pourquoi utiliser le Système.Aléatoire à tous? La Performance peut-être?

Qui seriez-vous plutôt du type?
Trop de gens utilisent sérieusement que comme une justification pour ce qu'ils font (généralement pas à haute voix). Le Code est plus lu que c'est écrit, qui se soucie de trivial différences de longueur?
Mais de toute façon, pourquoi devriez-vous utiliser de chiffrement Rng si vous ne faites pas de la cryptographie?
c'est ce que les alias sont pour -> using R = System.Security.Cryptography.RandomNumberGenerator; R.Create();

OriginalL'auteur Lernkurve | 2009-08-10