일반 해시 매개 변수가 포함 된 각 사용자에 대해 특정 (그러나 긴) 확인 링크가 포함 된 일반적인 전자 메일 확인 스크립트를 사용하여 사용자가 전자 메일을 확인해야하는 사이트가 있습니다.결과에서 명백한 패턴이없는 Base62에서 인 코드/디코드 기능을 수행하는 방법은 무엇입니까?
문제는 일부 사용자가 사용중인 장치로 인해 길고 복잡한 확인 링크에 문제가 있다는 것입니다.
그래서 각 사용자에 대해 고유 한 확인 링크를 생성하여 패턴이 분명하지 않아서 알아낼 수없고 남용되지 않도록 할 수있는 대안을 만들어야합니다.
저는 Base62 인코딩 및 디코딩을 살펴 보았습니다. 그러나 발견 된 것은 숫자에만 기반을 두었습니다.이 숫자는 순차 고유 사용자 ID를 사용하는 것으로 제한되어 있습니다. 그러면 인코딩 된 결과에 명백한 순차 패턴이 생성됩니다. 쉽게 학대 당할 수 있습니다.
가급적이면 DB를 변경하지 않아도되는 솔루션을 원합니다.
이상적으로는 기본적으로 Bit.ly 및 다른 URL 단축명이 고유 URL을 만드는 방식과 비슷한 단축 URL을 만들고 싶습니다. 그러나 사용자 ID, 사용자 이름 또는 전자 메일 중 하나를 인코딩하여 디코딩 할 수 있습니다. 바람직하게는 인코딩 된 결과에 패턴이 나타나지 않도록 유일한 키로 "암호화 된"인코딩/디코딩을 갖는다.
예 :
그래서 대신에 확인 링크의이 같은보고 : 나는 단순히 얻을 Sg5rdn를 디코딩 할 경우
http://domain.com/confirm/Sg5rdn
:
http://domain.com/[email protected]&hash=1f3870be274f6c49b3e31a0c6728957f
나는 모양을하고 싶습니다 사용자 이름, 사용자 ID 또는 전자 메일을 확인하고이를 확인하십시오.
이 경우에도 가능합니까?
고마워,하지만이 DB를 사용하지 않고 가능한지 확인하려고합니다. – ProgrammerGirl
아니오라고 말하고 싶습니다. 물론 url 매개 변수 문자열에 사용자 이름 + id + 전자 메일을 인코딩 할 수 있지만 상당히 위험 할 수 있으며 문자열이 길어질 수 있습니다. –