Domanda

Vorrei essere in grado di generare variabili URL come questo:

http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf

Le variabili corrisponderanno a un record di set di MySQL in modo che posso tirare fuori. Al momento della creazione di quel set di record, desidero creare questa chiave per esso.

Come posso fare questo? Qual è il modo migliore per farlo? Ci sono classi esistenti che posso fare uso di?

Grazie a tutti

È stato utile?

Soluzione

In sostanza, è necessario una funzione hash di qualche tipo.

Questo può essere SHA-1 funzione, una funzione MD5 (come altCogito), o utilizzando altri dati che avete nel record e la codifica di esso.

Quanti record pensi avrete? Fate attenzione sulla scelta della soluzione da funzione hash deve essere abbastanza grande da coprire bene, ma troppo grande e si crea un database più grande del necessario. Ho usato SHA-1 e troncare a 64 o 32 bit, a seconda delle necessità.

Inoltre, guarda a riposo. Si consideri che l'URL non può essere così misterioso ...

Altri suggerimenti

Questo può essere fatto abbastanza semplice in un paio di modi:

  • Utilizzare un hash, come ad esempio MD5 . (Sarebbe lungo)
  • Base-64 codificare un particolare ID o un pezzo di dati

Se ti stai chiedendo se c'è qualcosa che fa già con i record di MySQL, non sono sicuro che troverete qualcosa come il disegno-saggio, i dati è molto, molto concettualmente lontano da URL in il vostro sito web, anche in framework come Grails. La maggior parte non hanno nemmeno tentare di spostare in su front-end e la funzionalità di accesso ai dati in un unico pezzo.

In quale contesto si sarà utilizzare questo? Perché non passare variabili pubblicare? E 'molto più sicuro e pulito. Sarà ancora realizzare il numero nell'url come id = 195yq, e c'è un modo per nasconderli configurando il file php.ini.

Spero che questo possa essere di aiuto a voi.

Si prega di tenere questo in mente. Quando si passa le variabili nella barra degli indirizzi è facile per qualcuno a cambiare la variabile, e le informazioni di accesso non si può decidere loro di accedere.

Negli esempi hai dato, sembra come se fossi in base 64 che codifica la chiave primaria numerico. Ecco come lo farei e hanno fatto in passato, ma non sono sicuro che sia meglio di passando l'ID in chiaro perché base-64 decodifica è banale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top