Generatore codici random: guida in JavaScript, Python, Go, C#, Java
Introduzione
In questa guida vedremo come creare un generatore di codici random in diversi linguaggi di programmazione (JavaScript, Python, Go, C#, Java). Ti guiderò passo dopo passo nella realizzazione di una funzione in grado di generare codici casuali e univoci, utilizzando gli strumenti e le migliori pratiche offerte da ogni linguaggio.
La funzione che svilupperò sarà altamente personalizzabile e potrà creare codici di lunghezza variabile, con prefissi, suffissi e caratteri speciali. Partirò dalle basi per rendere la guida accessibile anche ai principianti.
Requisiti del progetto
La funzione che andremo a realizzare avrà i seguenti requisiti:
- Input:
- Numero caratteri (minimo = 3, default = 10)
- Numero di codici da creare (opzionale, default = 1)
- Prefisso e suffisso (opzionali, default = stringa vuota)
- Uppercase, Lowercase, Numeri e Caratteri Speciali (tutti opzionali, default = true)
- Output:
Una lista di codici creati secondo i parametri specificati.
1. Generatore di codici casuali in JavaScript
Ambiente di sviluppo
Per realizzare il generatore in JavaScript, puoi utilizzare Node.js oppure inserire il codice direttamente in una pagina web.
Snippet di codice JavaScript
function generateRandomCode(length = 10, count = 1, prefix = "", suffix = "", options = {}) {
const defaultOptions = { uppercase: true, lowercase: true, numbers: true, specialChars: true };
options = { ...defaultOptions, ...options };
const charSets = {
uppercase: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
lowercase: "abcdefghijklmnopqrstuvwxyz",
numbers: "0123456789",
specialChars: "!@#$%^&*()-_=+[]{}<>?"
};
let availableChars = "";
if (options.uppercase) availableChars += charSets.uppercase;
if (options.lowercase) availableChars += charSets.lowercase;
if (options.numbers) availableChars += charSets.numbers;
if (options.specialChars) availableChars += charSets.specialChars;
if (availableChars.length === 0) throw new Error("Devi selezionare almeno un set di caratteri.");
const generateCode = () => {
let code = "";
for (let i = 0; i < length; i++) {
code += availableChars.charAt(Math.floor(Math.random() * availableChars.length));
}
return `${prefix}${code}${suffix}`;
};
return Array.from({ length: count }, generateCode);
}
// Esempio di utilizzo
console.log(generateRandomCode(10, 5, "PRE-", "-SUF", { uppercase: true, numbers: true, specialChars: false }));
Esempio di output
PRE-XA9DZL5F7-SUF
PRE-7GLF2PXD3J-SUF
PRE-ZY6DFJ3Q89-SUF
PRE-3LKD9ZFA7X-SUF
PRE-5DJQAZ9F2L-SUF
2. Generatore di codici casuali in Python
Ambiente di sviluppo
Assicurati di avere Python installato. Puoi utilizzare qualsiasi editor di testo o un IDE come PyCharm o VSCode.
Snippet di codice Python
import random
import string
def generate_random_code(length=10, count=1, prefix="", suffix="", uppercase=True, lowercase=True, numbers=True, special_chars=True):
char_sets = {
"uppercase": string.ascii_uppercase,
"lowercase": string.ascii_lowercase,
"numbers": string.digits,
"special_chars": "!@#$%^&*()-_=+[]{}<>?"
}
available_chars = ""
if uppercase:
available_chars += char_sets["uppercase"]
if lowercase:
available_chars += char_sets["lowercase"]
if numbers:
available_chars += char_sets["numbers"]
if special_chars:
available_chars += char_sets["special_chars"]
if not available_chars:
raise ValueError("Devi selezionare almeno un set di caratteri.")
def generate_code():
return prefix + "".join(random.choice(available_chars) for _ in range(length)) + suffix
return [generate_code() for _ in range(count)]
# Esempio di utilizzo
print(generate_random_code(10, 5, "PRE-", "-SUF", uppercase=True, lowercase=False, special_chars=False))
Esempio di output
PRE-ZND394FQW-SUF
PRE-DKJ382FPL-SUF
PRE-LFJ920ZQR-SUF
PRE-XAP348NDF-SUF
PRE-QWL738DFX-SUF
3. Generatore di codici casuali in Java
Ambiente di sviluppo
Assicurati di avere il JDK installato e utilizza un IDE come IntelliJ IDEA o Eclipse.
Snippet di codice Java
import java.util.Random;
public class RandomCodeGenerator {
public static void main(String[] args) {
String[] codes = generateRandomCode(10, 5, "PRE-", "-SUF", true, true, true, false);
for (String code : codes) {
System.out.println(code);
}
}
public static String[] generateRandomCode(int length, int count, String prefix, String suffix, boolean uppercase, boolean lowercase, boolean numbers, boolean specialChars) {
String availableChars = "";
if (uppercase) availableChars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (lowercase) availableChars += "abcdefghijklmnopqrstuvwxyz";
if (numbers) availableChars += "0123456789";
if (specialChars) availableChars += "!@#$%^&*()-_=+[]{}<>?";
if (availableChars.isEmpty()) throw new IllegalArgumentException("Devi selezionare almeno un set di caratteri.");
Random random = new Random();
String[] codes = new String[count];
for (int i = 0; i < count; i++) {
StringBuilder code = new StringBuilder();
for (int j = 0; j < length; j++) {
code.append(availableChars.charAt(random.nextInt(availableChars.length())));
}
codes[i] = prefix + code.toString() + suffix;
}
return codes;
}
}
Esempio di output
PRE-XJP92FQL3-SUF
PRE-DFL38WZP7-SUF
PRE-ZPQ48JFL2-SUF
PRE-FQL72XD93-SUF
PRE-JWP83XZL9-SUF
4. Generatore di codici casuali in C#
Ambiente di sviluppo
Utilizza Visual Studio o Visual Studio Code con il .NET SDK.
Snippet di codice C#
using System;
using System.Text;
class Program
{
static void Main(string[] args)
{
var codes = GenerateRandomCode(10, 5, "PRE-", "-SUF", true, true, true, false);
foreach (var code in codes)
{
Console.WriteLine(code);
}
}
static string[] GenerateRandomCode(int length = 10, int count = 1, string prefix = "", string suffix = "", bool uppercase = true, bool lowercase = true, bool numbers = true, bool specialChars = true)
{
string availableChars = "";
if (uppercase) availableChars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (lowercase) availableChars += "abcdefghijklmnopqrstuvwxyz";
if (numbers) availableChars += "0123456789";
if (specialChars) availableChars += "!@#$%^&*()-_=+[]{}<>?";
if (string.IsNullOrEmpty(availableChars)) throw new ArgumentException("Devi selezionare almeno un set di caratteri.");
var random = new Random();
string GenerateCode()
{
var code = new StringBuilder();
for (int i = 0; i < length; i++)
{
code.Append(availableChars[random.Next(availableChars.Length)]);
}
return prefix + code + suffix;
}
var codes = new string[count];
for (int i = 0; i < count; i++)
{
codes[i] = GenerateCode();
}
return codes;
}
}
Esempio di output
PRE-DFJ83WPL7-SUF
PRE-KLZ92FJD8-SUF
PRE-QWP38DJF2-SUF
PRE-FJL49XZQ7-SUF
PRE-DJX37FPL8-SUF
5. Generatore di codici random in Go
Ambiente di sviluppo
Per eseguire il codice Go, assicurati di avere Go installato e configura il tuo ambiente.
Snippet di codice Go
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func generateRandomCode(length int, count int, prefix string, suffix string, uppercase bool, lowercase bool, numbers bool, specialChars bool) []string {
charSets := map[string]string{
"uppercase": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"lowercase": "abcdefghijklmnopqrstuvwxyz",
"numbers": "0123456789",
"specialChars": "!@#$%^&*()-_=+[]{}<>?",
}
availableChars := ""
if uppercase {
availableChars += charSets["uppercase"]
}
if lowercase {
availableChars += charSets["lowercase"]
}
if numbers {
availableChars += charSets["numbers"]
}
if specialChars {
availableChars += charSets["specialChars"]
}
if len(availableChars) == 0 {
panic("Devi selezionare almeno un set di caratteri.")
}
generateCode := func() string {
code := ""
for i := 0; i < length; i++ {
randIndex, _ := rand.Int(rand.Reader, big.NewInt(int64(len(availableChars))))
code += string(availableChars[randIndex.Int64()])
}
return prefix + code + suffix
}
codes := make([]string, count)
for i := 0; i < count; i++ {
codes[i] = generateCode()
}
return codes
}
func main() {
codes := generateRandomCode(10, 5, "PRE-", "-SUF", true, true, true, false)
for _, code := range codes {
fmt.Println(code)
}
}
Esempio di output
PRE-FKL29JD73-SUF
PRE-ZPL08FND3-SUF
PRE-XJF27DL93-SUF
PRE-WQL38FJP4-SUF
PRE-9DFXZL728-SUF
Conclusione
In questa guida abbiamo visto come creare codici casuali utilizzando linguaggi di programmazione diversi: JavaScript, Python, Go, C# e Java. Ora puoi scegliere il linguaggio più adatto alle tue esigenze e integrare questa funzione nei tuoi progetti!