VB.NET - Algoritmo di generazione della chiave seriale (crittografia, hashing, codifica?)

0

Sto provando a creare un sistema di licenze di base in cui prendo un ID univoco dal computer client e ottengo questa stringa esadecimale (i trattini rimossi, ad esempio "84-18-CE -...."):

"8418CFEE73FA22E6AB0760C73A496497C6C347DA88A9F63B95FE1E1D6A350AA1D7D3A9EE870795AECC3C109AA8B4A78C"

È codificato solo in questo formato per rendere l'ID più lungo.

Fondamentalmente quello che ho cercato di fare (senza successo), è creare una routine che possa trasformare questa stringa in una stringa lunga 25 caratteri (meno i trattini) come quella seguente:

"H8G02-J8293-L02O9-S920Q-F8D9X"

(Un tasto alfanumerico con numeri o lettere senza un motivo particolare, preferibilmente lettera, numero, lettera o viceversa)

Non riesco proprio a capire come potrei quindi convalidare questa chiave, in modo da poter estrarre la stringa esadecimale non trasformata con cui abbiamo iniziato.

  • Si noti che la stringa esadecimale originale non sarà sempre della stessa lunghezza. Inoltre, una routine che convertirà QUALSIASI stringa in tale formato (alfanumerico, solo caps) sarà accettabile.
  • Mi sono appena reso conto che forse questo non è possibile (per abbreviare la stringa fino a 25 caratteri e mantenere comunque le informazioni (sciocco, lo so). Accetterò ora tutto ciò che mi permetterà di creare un personaggio di 25 caratteri O più LONGER, da cui posso selezionare 25 caratteri.
posta SolaGratia 15.07.2014 - 16:14
fonte

1 risposta

0

Converti il numero esadecimale in base 36 . Esempio qui .

Secondo questa pagina, il tuo input cede

1DWCLWKQZK16WMKIIEYVLLXA9E4OQ64P80KDOH4ALCYRCYCTKRUHQRXTM6HLDEV78E6APXQV1JG

nella base 36.

Ecco un Domanda di overflow dello stack che ha una funzione di conversione di base arbitraria in c # (ahimè, non è possibile ottenere il convertitore online per convertirlo correttamente in VB). Puoi vederlo in azione qui: link

    
risposta data 15.07.2014 - 17:29
fonte

Leggi altre domande sui tag