2011-09-07 2 views
0

나는 해시 문자열에 base64_encode 함수를 사용하고 있습니다. 문자열은 a-zA-Z0-9 여야하며 때로는 base64_encode가 끝에 = 기호를 출력하기도합니다 (때로는 두 번).= 기호없이 php base64_encode

= 부호를 생략하도록 base64_encode 함수 (?)를 변경하는 가장 효율적인 방법은 무엇입니까?

+0

또한 내 프로그램에서 문자열을 원래 형식으로 다시 디코딩 할 필요가 없습니다. – Tom

+2

왜 다시 디코딩하지 않을 것인가'base64' 인코딩합니까? 아마도 해시 함수 (예 :'md5' 또는'sha1')가 여기에 더 적합 할 수 있습니다. –

+0

그러면 어쩌면 해싱 기능이 필요하지 않을까요? –

답변

5

나중에 =이 필요합니다. 값을 나중에 디코딩하려면이 필요합니다. 또한 문자 집합 a-zA-Z0-9에는 62 개의 값만 있으므로 기본 값 으로 인코딩 된 값은 절대 들어갈 수 없습니다.

업데이트 : 해시 문자열이 필요한 경우 해시 함수를 사용하지 않는 이유는 무엇입니까? md5은 응용 프로그램이 보안에 민감하지 않으면 양호한 해법이어야합니다.이 경우 더 강력한 해시 (sha1 이상)를 사용해야합니다. 존, 이것은 당신에게 32 문자 AF/0-을 줄 것이다 당신은 당신이 더 나을 대신 md5를 사용하는 경우에, 당신이 할 필요가 없습니다 말을 무엇 = 나중에 디코딩 만에서 할 필요가 말했듯이

+0

난 그냥 코멘트에 추가했습니다. 나는 누군가가 그것을 지적한다는 것을 알았다 :) – Tom

+2

@Tom : 당신은 여전히 ​​다른 두 문자 (나는'/'와'+'가 사용된다고 생각한다)를 설명 할 필요가있다. 왜 출력을 절단하려고한다면'base64_encode'를 사용해야할까요? 어쩌면 다른 도구가 작업에 더 적합할까요? 정확히 무엇을 성취하려고합니까? – Jon

+0

그냥 유니 코드 문자열을 해시해야합니다. – Tom

관련 문제