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.
LVL 1
emi_sastraAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
CodeCruiserConnect With a Mentor Commented:
0
 
angus_young_acdcCommented:
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()

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        rand.Next(
    End Sub

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

Open in new window

0
 
emi_sastraAuthor 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
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
CodeCruiserCommented:
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
 
emi_sastraAuthor 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
 
CodeCruiserCommented:
0
 
emi_sastraAuthor Commented:
0
 
CodeCruiserCommented:
Looks good.
0
 
emi_sastraAuthor 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
 
CodeCruiserCommented:
Where did you get that code? Following does not look right

 <span class="code-keyword">return result.ToString();
0
 
emi_sastraAuthor Commented:
0
 
CodeCruiserCommented:
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

Open in new window

0
 
emi_sastraAuthor 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
 
CodeCruiserCommented:
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

Open in new window

0
 
emi_sastraAuthor Commented:
What is  RNGCryptoServiceProvider ?

Error      1      Type 'RNGCryptoServiceProvider' is not defined.

Thank you.
0
 
emi_sastraAuthor 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.

All Courses

From novice to tech pro — start learning today.