W WPF stworzyłem program, który pobiera wartość z jednej rubryki i ustawia na jej podstawie długość losowo wygenerowanego ciągu znaków. Niestety, nie wiedzieć czemu losowość jest mało losowa :P . Np. dla długości 7 output przy kolejnych kliknięciach przycisku generującego prezentuje się następująco:
11HH33J
F11HHH3
DD000FF
44KKK66
T@@@VVV
Kod(C#):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace KeyGen
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
int passwordLength=0;
public MainWindow()
{
InitializeComponent();
}
private void generateButton_Click(object sender, RoutedEventArgs e)
{
string temp;
temp = textBox2.Text;
if(textBox2.Text != "")
passwordLength = Int32.Parse(temp);
finalTextBox.Text = "";
for(int i=0; i<passwordLength ; i++)
finalTextBox.Text +=GetRandomChar() ;
}
private void textBox2_TextChanged(object sender, TextChangedEventArgs e)
{
}
private char GetRandomChar()
{
char randomChar;
int counter=0;
Random x;
x = new Random(System.DateTime.Now.Millisecond+counter);
randomChar=(char) x.Next(45, 88);
counter += 10000;
return randomChar;
}
}
}
Przecież w funkcji Random przy każdym wywołaniu funkcji ustawiane jest inne nasienie...