public function generate($size) {
if (!class_exists('\\DOTNET')) {
return str_repeat(chr(0), $size);
}
try {
$util = new \DOTNET(
'mscorlib',
'System.Security.Cryptography.RNGCryptoServiceProvider'
);
$varient = new \VARIENT(array_fill(0, $size, chr(0)), VT_UT1 | VT_ARRAY | VT_BYREF);
$util->GetBytes($varient);
return implode('', (array) $varient);
} catch (Exception $e) {
return str_repate(chr(0), $size);