• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 427
  • Last Modified:

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
Asked:
emi_sastra
  • 8
  • 7
1 Solution
 
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
 
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
Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

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

Thank you very much for your help.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

  • 8
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now