Hallo Community
Hier ein ganz einfacher modifizierter cryptosicherer Zufallsgenerator für alle nummerische Datentypen. Es können Zahlen wie auch Arrays angefordert werden.
Basiert auf dem RNGCryptoServiceProvider.
Spoiler anzeigen
Viel Spass.
Freundliche Grüsse
exc-jdbi
UPDATES:
CryptoRnd.vb - Erste version in Vb.net - 2017
CryptoRnd.zip - Erste Version als Vb.Net und C# - 2017
ModifiedCryptoRng.zip - Leicht modifiziert und erweitert als Vb.Net und C# - 2019
ModifiedCryptoRngV02.3.0.zip - Erweiterte Version als Vb.Net und C# - 2020
ISAAC64.zip - Komplette generische Neuausarbeitung des kryptografisch sicheren Pseudozufallszahlengenerator isaac für Vb.Net und C# .Net7.0 - 2023
Hier ein ganz einfacher modifizierter cryptosicherer Zufallsgenerator für alle nummerische Datentypen. Es können Zahlen wie auch Arrays angefordert werden.
Basiert auf dem RNGCryptoServiceProvider.
VB.NET-Quellcode
- Option Strict On
- Option Explicit On
- Public Module Module1
- Public Sub Main()
- Dim cnt As Int32 = 100
- Dim sw As New Stopwatch
- Dim rnd As New CryptoRnd
- Dim bArr() As Byte = New Byte(cnt - 1) {}
- Dim iArr() As Int32 = New Int32(cnt - 1) {}
- Dim uiArr() As UInt64 = New UInt64(cnt - 1) {}
- PrintTitel()
- 'Cryptosichere Random-Arrays mit min/max (Nur Ganzzahlen)
- Dim min As Int32 = Int32.MinValue, max As Int32 = Int32.MaxValue
- sw.Start()
- If rnd.interval(Of Int32)(min, max) Then
- rnd.GetBytes(Of Int32)(iArr)
- End If
- sw.Stop()
- PrintOut(iArr, sw)
- Dim max2 = UInt64.MaxValue, min2 As UInt64 = CULng(10 ^ 18)
- sw.Restart()
- If rnd.interval(Of UInt64)(min2, max2) Then
- rnd.GetBytes(Of UInt64)(uiArr)
- End If
- sw.Stop()
- PrintOut(uiArr, sw)
- Dim min3 As Byte = Byte.MinValue, max3 As Byte = Byte.MaxValue
- sw.Restart()
- rnd.GetBytes(Of Byte)(bArr, min3, max3)
- sw.Stop()
- PrintOut(bArr, sw)
- 'Einzelne cryptosichere Randoms mit min/max (Nur Ganzzahlen)
- Dim iRnd As Int32 = rnd.next(Of Int32)(-100, 100)
- Dim ulRnd As UInt64 = rnd.next(Of UInt64)(1000, 123456789)
- Dim blRnd As Byte = rnd.next(Of Byte)(100, 200)
- Console.ReadKey()
- End Sub
- Private Sub PrintTitel()
- Console.WriteLine("Cryptographically strong Randomgenerator{0}****************************************{0}", vbCrLf)
- End Sub
- Private Sub PrintOut(Of T)(ByVal arr() As T, ByVal sww As Stopwatch)
- For i As Int32 = 0 To arr.Length - 1
- Console.WriteLine(arr(i))
- Next
- Dim typ As Type = arr(0).GetType
- Console.WriteLine("{3}{4}{1}{0}pcs.:{1}{2}ms.{3}{3}", arr.Length, vbTab, sww.ElapsedMilliseconds, vbCrLf, typ.ToString)
- End Sub
- End Module
Viel Spass.
Freundliche Grüsse
exc-jdbi
UPDATES:
CryptoRnd.vb - Erste version in Vb.net - 2017
CryptoRnd.zip - Erste Version als Vb.Net und C# - 2017
ModifiedCryptoRng.zip - Leicht modifiziert und erweitert als Vb.Net und C# - 2019
ModifiedCryptoRngV02.3.0.zip - Erweiterte Version als Vb.Net und C# - 2020
ISAAC64.zip - Komplette generische Neuausarbeitung des kryptografisch sicheren Pseudozufallszahlengenerator isaac für Vb.Net und C# .Net7.0 - 2023
Dieser Beitrag wurde bereits 12 mal editiert, zuletzt von „exc-jdbi“ ()