Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die schnellsten Verschlüsselungs- und Entschlüsselungsmethoden in PHP zum Verschlüsseln von UIDs und anderen IDs?

Was sind die schnellsten Verschlüsselungs- und Entschlüsselungsmethoden in PHP zum Verschlüsseln von UIDs und anderen IDs?

WBOY
WBOYOriginal
2016-12-01 01:27:432039Durchsuche

Früher wurde die ID immer direkt als Get-Parameter im Frontend verwendet, beispielsweise eine Adresse wie a.com?uid=16. Wenn der Benutzer dieses Muster entdeckt, kann er es anzeigen, indem er 16 in 17, 18 ändert , 19 usw. Die Daten jedes Benutzers sind verloren gegangen, daher würde ich gerne fragen, wie Sie das Problem gelöst haben?


Die Anforderung bedeutet nicht, dass es Benutzern nicht gestattet ist, die Informationen anderer Benutzer einzusehen, sondern dass jeder sie einsehen kann. Warum besteht also immer noch ein solcher Bedarf? Dies ist genau wie die WeChat-ID von WeChat. Solange Sie eine WeChat-ID haben, ist es schwierig, diese Person durch Credential Stuffing, Glück usw. zu finden. Youku, Tudou, Bilibili, alle Video-Websites zeigen die Video-ID nicht direkt in der Adressleiste an und sind alle verschlüsselt. (Wenn die Video-Website keine fortlaufenden IDs in der Datenbank verwendet, habe ich es nicht gesagt ... Tatsächlich habe ich die Datenbank der oben genannten Website noch nie gesehen)


Die Voraussetzung ist, dass die Ver- und Entschlüsselung schnell und schwer zu knacken sein sollte. (Ersteres hat Vorrang)

Antwortinhalt:

Früher wurde die ID immer direkt als Get-Parameter im Frontend verwendet, beispielsweise eine Adresse wie a.com?uid=16. Wenn der Benutzer dieses Muster entdeckt, kann er es anzeigen, indem er 16 in 17, 18 ändert , 19 usw. Die Daten jedes Benutzers sind verloren gegangen, daher würde ich gerne fragen, wie Sie das Problem gelöst haben?


Die Anforderung bedeutet nicht, dass Benutzer die Informationen anderer Benutzer nicht einsehen dürfen, sondern dass jeder sie einsehen kann. Warum besteht also immer noch ein solcher Bedarf? Dies ist genau wie die WeChat-ID von WeChat. Solange Sie eine WeChat-ID haben, ist es schwierig, diese Person durch Credential Stuffing, Glück usw. zu finden. Youku, Tudou, Bilibili, alle Video-Websites zeigen die Video-ID nicht direkt in der Adressleiste an und sind alle verschlüsselt. (Wenn die Video-Website keine fortlaufenden IDs in der Datenbank verwendet, habe ich es nicht gesagt ... Tatsächlich habe ich die Datenbank der oben genannten Website noch nie gesehen)


Die Voraussetzung ist, dass die Ver- und Entschlüsselung schnell und schwer zu knacken sein sollte. (Ersteres hat Vorrang)

Das ist richtig, wenn Ihr Ziel darin besteht, Benutzer daran zu hindern, die Daten anderer Benutzer anzuzeigen, dann ist Ihre Idee etwas voreingenommen.

Was Sie tun sollten, ist eine Authentifizierung im Backend durchzuführen, anstatt die UID zu verschlüsseln. Wenn der aktuell angemeldete Benutzer beispielsweise uid=16 ist, sollte das Backend bei der Anforderung von a.com?uid=17 (oder anderen Nicht-16-Seiten) feststellen können, dass er keine Berechtigung hat, und eine entsprechende Rückmeldung geben ( B. eine leere Seite ausgeben oder direkt 403 auslösen).
Um die Authentifizierung zu implementieren, müssen Sie lediglich die UID des angemeldeten Benutzers in $_SESSION['uid'] aufzeichnen und bei jeder Anforderung feststellen, ob $_GET['uid'] == $_SESSION['uid'] wahr ist.


26.10.2016 21:51 Ergänzung: <<<
Der Eigentümer der Frage hat die Frage aktualisiert und gesagt, dass jeder die Benutzerinformationen sehen kann, ich aber nur uid Ausblenden. Wenn ich auf diese Situation stoße, besteht mein Ansatz darin, ein Feld openid zur Benutzertabelle hinzuzufügen und es dem Index hinzuzufügen. Wenn sich der Benutzer registriert, kann er uid durch eine Kombination aus UNIX 时间戳, 若干长度的随机字符串, < übergeben 🎜> usw. Verwenden Sie die Funktion der Klasse, um ein eindeutiges md5() zu generieren. Wenn die Informationen an die Außenwelt weitergegeben werden, verwenden Sie openid, um die Daten abzurufen. openid<<


Wenn Sie auf die Verwendung von Verschlüsselung bestehen, können Sie online nach vielen vorgefertigten und ausgereiften Lösungen suchen. Ich habe bei Google mit dem Schlüsselwort

gesucht, und fast alle davon sind auf der ersten Seite zu finden Wenn Sie beispielsweise den folgenden Code aus dem ersten Element in den Suchergebnissen extrahieren möchten, können Sie darauf verweisen (ich habe ihn nicht getestet). PHP加解密

Quelle: http://jerry17768java.blogspo...

Hash einige + zufällig einige

Ich denke, Sie sollten die Funktion der Berechtigungsbeurteilung hinzufügen, z. B. die Identifizierung von Benutzern anhand von Cookies.

Sie können OpenSSL AES für die Verschlüsselung/Entschlüsselung verwenden:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn