• Status: Solved
• Priority: Medium
• Security: Public
• Views: 437

# Random number

Hi All,

I want to create random number for transaction.
The random number is not just from 1 - 10, when we have 10 transaction then we have 1 to 10.

I mean the number created not a serial number.
And the random number created using keys provided by us.
Some kind of systematic readable encryption.

How could I do it ?

Thank you.
0
emi_sastra
• 8
• 7
1 Solution

Commented:
The following code will generate you a random number based on two inputs

``````Public Class Form1
Dim result As String
Dim rand As New Random()

rand.Next(
End Sub

Private Sub GenerateRandom(numberOne As Integer, numberTwo As Integer)
result = rand.Next(numberOne, numberTwo)
End Sub
End Class
``````
0

Author Commented:
Hi  angus_young_acdc,

Your code seems not solve my question.
Your code will create a serial number at the end.

numberOne = 1
numberTwo  = 10
At the end we will have a serial number from 1 to 10.

The random number is not just from 1 - 10, when we have 10 transaction then we have 1 to 10.

I mean the number created not a serial number.

Thank you.
0

Commented:
Struggling to understand. If you create random numbers between 1 and 10, you will not get serial numbers. You may get 3, 1, 6, 9, ... etc. If you wish, you can create random numbers between 1 and 100 or 1 and 1000.
0

Author Commented:
Hi CodeCruiser,

What I want is to create a number, not just a random number, what I mean random number is a number that is not easy to read, thus not easy to duplicate, for example, voucher.

In the past I've heard about a number that has checked digit. If the number after reversed has not the same checked digit, then the number is invalid number.

Thank you.
0

Commented:
0

Author Commented:
0

Commented:
Looks good.
0

Author Commented:
I am sorry, just back.

I try to convert it to VB, but failed.

private string GetUniqueKey()
{
int maxSize  = 8 ;
int minSize = 5 ;
char[] chars = new char[62];
string a;
a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
chars = a.ToCharArray();
int size  = maxSize ;
byte[] data = new byte[1];
RNGCryptoServiceProvider  crypto = new RNGCryptoServiceProvider();
crypto.GetNonZeroBytes(data) ;
size =  maxSize ;
data = new byte[size];
crypto.GetNonZeroBytes(data);
StringBuilder result = new StringBuilder(size) ;
foreach(byte b in data )
{ result.Append(chars[__b % (chars.Length - )>); }
<span class="code-keyword">return result.ToString();
}

What should I do ?

Thank you.
0

Commented:
Where did you get that code? Following does not look right

<span class="code-keyword">return result.ToString();
0

Author Commented:
0

Commented:
That code contains html tags for some reason. Here is the converted code

``````private Function GetUniqueKey() As String
Dim maxSize As Integer  = 8
Dim minSize As Integer= 5;
Dim chars As new char(62)
Dim a As string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
chars = a.ToCharArray()
Dim size As Integer  = maxSize
Dim data As new byte(1)
Dim crypto As new RNGCryptoServiceProvider()
crypto.GetNonZeroBytes(data)
size =  maxSize
data = new byte(size)
crypto.GetNonZeroBytes(data);
Dim result As new StringBuilder(size)
foreach b As byte in data
result.Append(chars(b % (chars.Length - 1))
Next
return result.ToString()
End Function
``````
0

Author Commented:
Hi CodeCruiser,

I've compiled error :

Error      8      Character is not valid.
Error      7      Expression is of type 'Byte', which is not a collection type.
Error      3      Type 'Byte' has no constructors.
Error      5      Type 'Byte' has no constructors.
Error      1      Type 'Char' has no constructors.
Error      4      Type 'RNGCryptoServiceProvider' is not defined.
Error      6      Type 'StringBuilder' is not defined.
Error      2      Value of type '1-dimensional array of Char' cannot be converted to 'Char'.

Thank you.
0

Commented:
Another try

``````Private Function RNGCharacterMask() As String
Dim maxSize As Integer = 8
Dim minSize As Integer = 5
Dim chars As Char() = New Char(61) {}
Dim a As String
a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
chars = a.ToCharArray()
Dim size As Integer = maxSize
Dim data As Byte() = New Byte(0) {}
Dim crypto As New RNGCryptoServiceProvider()
crypto.GetNonZeroBytes(data)
size = maxSize
data = New Byte(size - 1) {}
crypto.GetNonZeroBytes(data)
Dim result As New StringBuilder(size)
For Each b As Byte In data
result.Append(chars(b Mod (chars.Length - 1)))
Next
Return result.ToString()
End Function
``````
0

Author Commented:
What is  RNGCryptoServiceProvider ?

Error      1      Type 'RNGCryptoServiceProvider' is not defined.

Thank you.
0

Commented:
0

Author Commented:
Great.

Thank you very much for your help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.