DB 레코드와 일치하는 고유 한 URL 변수를 생성하는 방법은 무엇입니까?
-
21-08-2019 - |
문제
다음과 같은 URL 변수를 생성하고 싶습니다.
http://example.com/195yq
http://example.com/195yp
http://example.com/195yg
http://example.com/195yf
변수는 MySQL 레코드 세트와 일치하여 철수 할 수 있습니다. 그 레코드 세트를 만들 때, 나는이 키를 만들고 싶습니다.
어떻게 할 수 있습니까? 이것을하는 가장 좋은 방법은 무엇입니까? 내가 사용할 수있는 기존 클래스가 있습니까?
감사합니다
해결책
기본적으로 어떤 종류의 해시 기능이 필요합니다.
이것은 SHA-1 함수, MD5 함수 (Altcogito) 또는 레코드에있는 다른 데이터를 사용하여 인코딩 할 수 있습니다.
얼마나 많은 기록을 가질 것이라고 생각하십니까? 해시 함수로 솔루션을 선택하는 데주의를 기울여야합니다. 해시 기능은 당신을 잘 덮을 수있을 정도로 커야하지만 너무 커서 필요한 것보다 더 큰 데이터베이스를 만듭니다. 나는 필요에 따라 SHA-1과 잘린 비트를 64 또는 32 비트로 사용했습니다.
또한 휴식을보십시오. URL이 그렇게 신비 할 필요가 없다고 생각하십시오 ...
다른 팁
어떤 맥락에서 이것을 사용 하시겠습니까? 왜 우편 변수를 통과하지 않습니까? 훨씬 더 안전하고 깔끔합니다. ID = 195YQ와 같은 URL의 숫자를 계속 달성하고 php.ini 파일을 구성하여 숨길 수있는 방법이 있습니다.
이것이 당신에게 도움이 될 수 있기를 바랍니다.
이것을 명심하십시오. 주소 표시 줄에서 변수를 전달하면 누군가가 변수를 변경하기 쉽고 액세스하지 않기를 원할 수 있습니다.
당신이 준 예제에서, 당신은 숫자 1 차 키를 인코딩하는 Base-64처럼 보입니다. 그것이 내가 그것을하고 과거에 그것을했던 방법이지만, Base-64 디코딩이 사소하기 때문에 ID를 명확하게 전달하는 것보다 더 낫지는 않습니다.