2010-05-30 2 views
2

일부 php의 암호화 기능을 사용할 때 원하지 않는 문자 (+, /, =)를 얻게됩니다. 문제는 내 응용 프로그램에서 URL에서 허용하지 않는 것입니다. 정수를 암호화하고 결과에 영숫자 만 사용하는 좋은 방법이 있는지 궁금합니다. URL을 통해 일부 데이터를 전달하려고합니다. 몇 가지 해결 방법을 사용할 수 있다는 것을 알고 있습니다 (데이터를 데이터베이스에 저장하고 행 또는 다른 것으로 ID 전달).하지만 실제로이 방법을 시도하고 싶습니다.PHP는 정수를 암호화하여 영숫자 문자 만 가져 옵니까?

아이디어가 있으십니까?

+0

어쩌면 당신이 좋아하는 것 : http://stackoverflow.com/questions/327097/simple-encryption-in-php/327206#327206 – miku

+0

그래도 base64_encode를 사용합니다. 그건 내가 원하지 않는 캐릭터를 줄거야. (+, /, =). – Matthew

답변

1

나는 다시 생각 할 문제에 대한 파일입니다 "생각"

. 절대 URL 쿼리에서 중요한 데이터를 전달하려고합니다. 이미 웹을 통해 민감한 데이터를 수집하는 메커니즘이 있습니다.이를 SSL이라고합니다. 사용자로부터 중요한 데이터를 가져와야하는 경우이를 POST 데이터로 사용하고 SSL을 사용하십시오.

절대적으로 수행해야한다면 (하지 마세요) 암호화 메시지를 base64로 지정하고 키 안전에 매우주의해야합니다.

+0

우리가 간다. 이미 암호화 된 메시지를 base64_encode해야합니다. 나는 여전히 문자열의 끝에 패딩을 제거해야합니다. 나는 그것을 알아낼 것이다. 그리고 민감하지 않아서 걱정하지 마십시오. – Matthew

+0

URL 안전 버전의 Base64 인코더를 사용하십시오. –

1

당신은 base_convert()을 찾고 있습니다.

+0

기술적으로 암호화하지 않는다고 생각합니다. 사용자가 원래 정수를 알아내는 것은 너무 쉽습니다. – Matthew

+2

Matthew, base64_encode (위에 언급 한대로)는 암호화가 아닙니다. 그것은 단지 인코딩입니다. – halfdan

0

나는

http://www.php.net/manual/en/function.sha1.php

어쩌면 그것은 당신의 솔루션입니다

...

+0

단 하나의 방법이 아닙니까? 양방향 암호화가 필요합니다. – Matthew

+0

"양방향"으로 "암호화 및 암호 해독"을 의미하는 경우 sh1을 사용하여 pwd를 로그인 시스템 용으로 암호화합니다 ... 확인할 때 입력 값과 sh1 (비교)을 비교하기 전에 필자는 ... 이것이 당신의 문제를 해결하는지 안다면! – Zuul

+0

OpenSSL과 함께 RC4를 사용하면 양방향 암호화를 위해 URL에서 사용할 수있는 것을 얻을 수 있습니다. 나는 그것이 안전하다는 것을 말하지 않고있다, 그것이 작동하는 것. – zed

1

내가 base64_encode 다음 base64_decode 다른면 다음 데이터를주고 생각 ... SH1를 사용하여 숫자와 문자의 아무것도 없었어 . 내가 base64 인코딩 완벽 URI의

관련 문제