Passa al tema normale
Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Algoritmo per generare codice PIN

07/01/2020, 21:47

Buonasera, sono un programmatore di PLC.
Vorrei chiedere qualche consiglio per la generazione di un piccolo algoritmo. (Possibilmente molto semplice)
Stò realizzando un programma dove il mio cliente ha chiesto di poter abilitare alcune funzioni della macchina per un determinato periodo di tempo (giorni) inserendo un codice PIN.
Il codice PIN verrà fornito al manutentore o all’utilizzatore della macchina quando necessario .
Il codice, verrà generato sulla base di tre elementi:
1) ID univoco che identificherà o la macchina o il tecnico manutentore (Questo lo si deciderà successivamente), ma credo che faccia poca differenza se uno o l’altro. La lunghezza dell’ID sarà indicativamente composto da 2 - 3 cifre
2) Giorno e mese di inizio della validità del codice
3) Giorno e mese di fine validità del codice.

E’ la prima volta che mi trovo a gestire una tipologia di un codice del genere, e non ho idea di come farlo. Potreste aiutarmi gentilmente a comprendere come creare un piccolo algoritmo di codifica – decodifica del codice?
Non necessitano un sistema inattaccabile. Solo un sistema semplice ed efficiente.
La macchina lavorerà in modalità stand-alone, quindi non ha collegamenti in rete o altro.
Ringrazio anticipatamente.

Re: Algoritmo per generare codice PIN

07/01/2020, 22:39

Penso che dovresti far spostare il thread nella stanza di Informatica, riceverai più risposte e sicuramente più significative.
Però devi chiedere ad un moderatore, solo lui può farlo.

Cordialmente, Alex

Re: Algoritmo per generare codice PIN

09/01/2020, 11:29

Ciao, credo che tu stia cercando una cosa come una funzione hash o una checksum intelligente.
Il codice PIN dev'essere inserito solo una volta, per esempio il primo giorno, giusto?

Re: Algoritmo per generare codice PIN

09/01/2020, 16:47

Ciao e grazie della risposta.
In realtà cerco qualche cosa tipo OTP "one-time password" (almeno credo che si chiama cosi).
Il codice deve essere inserito tutte le volte che l'operatore autorizzato deve intervenire sulla macchina.
Se l'operatore (in genere il manutentore) si allontana dalla macchina su cui stà facendo manutenzione, il programma dopo un tempo X lo disconnette. Per riaccedere deve re-inserire il codice.
Grazie

Re: Algoritmo per generare codice PIN

10/01/2020, 11:30

Allora è già deciso cosa ti serve.
La cosa più semplice è di usare gli standard per OTP:
https://en.wikipedia.org/wiki/HMAC-base ... _algorithm
https://en.wikipedia.org/wiki/Time-base ... _algorithm

Ci sono applicazioni per smartphone gratuite, come Google Authenticator, che possono generare i codici di accesso.

Re: Algoritmo per generare codice PIN

10/01/2020, 11:50

aurigo ha scritto:1) ID univoco che identificherà o la macchina o il tecnico manutentore (Questo lo si deciderà successivamente), ma credo che faccia poca differenza se uno o l’altro. La lunghezza dell’ID sarà indicativamente composto da 2 - 3 cifre


2 o 3 cifre? Mi pare piuttosto corso come numero identificativo. L'identificativo è relativo alla singola azienda?

Comunque, riguardo al tuo problema, se il PIN rimane lo stesso per un tempo medio-lungo non è necessario usare la complessità di un OTP. Insomma potresti persino richiedere al manutentore di decidere lui il pin e richiederli di cambiarlo ogni X giorni.

Re: Algoritmo per generare codice PIN

10/01/2020, 14:22

2 o 3 cifre? Mi pare piuttosto corso come numero identificativo. L'identificativo è relativo alla singola azienda?

L'ID è relativo al tecnico o macchina all'interno dell'azienda. In realtà avrei pensato di inserire una chiave che potrebbe anche essere il codice cliente, per verificare che ci sia corrispondenza tra codice cliente e macchina, ma in realtà non so come creare l'algoritmo.
Ho pensato a qualcosa, ma mi viene fuori un password troppo lunga.
potresti persino richiedere al manutentore di decidere lui il pin e richiederli di cambiarlo ogni X giorni.

Il manutentore non deve essere a conoscenza della chiave o di come generarla, sopratutto se interno all'azienda.

Re: Algoritmo per generare codice PIN

10/01/2020, 17:14

Mi sembra effettivamente che tu abbia bisogno più di un sistema di licenza che un PIN (generamente usato semplicemente per controllare che chi acceda sia abilitato a farlo).

Re: Algoritmo per generare codice PIN

10/01/2020, 17:24

Si Sergio, in linea di massima quello che tu hai scritto è corretto.
Per maggior chiarezza, nelle macchine vi sono parametri che possono essere modificate solo da personale qualificato. Ad esempio il reset delle ore di funzionamento, che per ovvi motivi può essere paragonato al conta chilometri dell'auto. Vi sono macchine che se date in affitto gestione, la remunerazione viene quantificata in funzione della loro produttività, oppure se è necessario bypassare delle sicurezze sul funzionamento ecc. Questi solo solo alcuni esempi.
Come ID avrei pensato ad un ID a solo due cifre che identifica la macchina in quell'azienda. Normalmente in un'azienda possono esserci più macchine identiche, ma parliamo di un numero limitato. Normalmente massimo una decina. Poco importa se esistono più macchine con lo stesso ID. L'importante che esse non siano nella medesima azienda.
Avrei pensato di creare un codice a 7 cifre tipo questo:
Giorno di partenza di validità (2 cifre)
Mese di partenza della Validità (2 Cifre)
Durata di validità del codice (1 cifra). Permette di avere una validità fino a 9 giorni partendo dalla data su indicata. 9 Giorni direi più che sufficienti. Se poi dovesse essere necessario, viene creato un nuovo codice valido per altri 9 giorni.
ID della macchina (2 cifre)
Una Chiave di crittografia comune a tutte le macchine presenti in quell'azienda, che potrebbe essere anche ad esempio il codice cliente. Ovviamente la chiave di crittografia è conosciuta (inserita nelle macchine) in quell'azienda perchè identifica l'azienda e dal costruttore o chi dovrà generare la chiave.
Ciò che mi manca è la modalità su come crittografare o de-crittografare il codice.

Re: Algoritmo per generare codice PIN

10/01/2020, 17:27

@Sergio
Testo nascosto, perché contrassegnato dall'autore come fuori tema. Fai click in quest'area per vederlo.
Sergio ha scritto:In fondo, la codifica/decodifica del PIN è la parte più semplice, perché gestire aspetti quali la modifica dell'elenco degli ID validi richiede anche la messa a punto di idonei processi organizzativi.

Il problema è che questa parte del "lavoro" non la conosce nessuno (in pochi, diciamo … ), quello che "conta" sono i programmi e i costi … detto da uno che ha lavorato "qualche anno" a realizzare "idonei processi organizzativi" :D
Scusate l'intromissione.


Cordialmente, Alex
Rispondi al messaggio


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.