Cum sa generezi date random

Posted by anghelvalentin on January 25, 2020

Anul trecut prin Noiembrie, m-am apucat cu cel mai bun prieten al meu sa facem un site. Ne-am gândit noi ca un site ușor de făcut, dar cu multe chestii de învățat ar fi un site de generare de date atât pentru programatori, cat și pentru oamenii obișnuiți.

Randommer.IO - Data Generator

Ne-am gândit noi ca un site ușor de făcut, dar cu multe chestii de învățat ar fi un site de generare de date atât pentru programatori, cat și pentru oamenii obișnuiți. Zis și făcut (bine mai mult zis decât făcut), am început sa lucram la site. Primele funcții au fost cele de generare de numere, fiind destul de ușor sa generezi in C# un număr aleatoriu.

new Random().Next(min,max);

După aceea am zis noi ca ar fi mișto sa generam numere de telefon valide aleatorii pentru fiecare tara. Aici a fost primul hop. Am găsit pe Wikipedia prefixele pentru toate tarile și codurile pentru rețele (de exemplu +40 pentru Romania și 76 pentru Telekom/Cosmote). Problema a fost ca datele nu prea erau complete și era destul de greu sa copiezi și sa organizezi într-o tabela datele de pe Wikipedia. Pana la urma, a venit și soluția: am găsit o librărie de validare de numere de telefon oferita de Google. Am luat librăria și am observat ca pentru fiecare tara erau expresii regulare cum trebuie sa arate număr de telefon. Ne-am gândit noi și am zis: Ba da nu ar trebui sa existe o modalitate ca pe baza regex sa poți sa generezi un cuvânt in funcție de regulile setate. Am găsit încă o librărie pentru a face acest lucru (cum zic istoricii: Norocul tine cu cei buni) și așa a apărut generatorul de numere de telefon.

In timpul căutărilor noastre tot găsisem servicii contra cost ca sa validezi numere de telefon. Practic ce făceau ei e sa folosească librăria gratuita a celor de la Google și sa o pună in spatele unui API. Nu ceva foarte complicat, astfel ca am zis hai sa facem și noi servicii REST API pentru funcționalitățile site-ului și sa le oferim gratuit. Am pus o limita zilnica destul de generoasa, dar necesara pentru a evita atacatorii și i-am dat drumul. Serviciul e protejat de un api key generat după ce utilizatorul își face cont pe site.

Serviciul nostru deja ofera urmatoarele functionalitati:

  1. Generare de numere
  • număr aleatoriu
  • secvență aleatorie
  1. Aruncare zaruri
  2. Generare numere de telefon si validare telefoane internationale
  3. Calculare hash pentru algoritmi precum MD5 si SHA256
  4. Convertire numere romane la arabice si invers
  5. Criptarea mesajelor prin cifrul lui Caesar
  6. Generare de text Lorem Ipsum.
  7. Procesator de text.
  8. Generare credit card-uri incluzând număr de card, CCV și data de expirare.
  9. Generare coduri numerice personale pentru Statele Unite ale Americii.
  10. Generare de nume și prenume englezești.
  11. Calculator de date
  12. Calculare timp între doua date. Îți afișează cât timp a trecut între doua date.
  13. Convertire timp unix în dată normală.

Ce servicii ne-am mai propus:

  • funcții de convertire pentru diferite unități de măsura. Vom avea funcții de convertire pentru distanta, greutate, volum.
  • funcții matematice
  • calculare indicatori de sănătate, precum calculare indice masa corporala.

Site-ul serviciilor: Random Data Generator