2009-08-04 2 views
1

나는 PHP에서 문자열의 각 문자가 얼마나 많은 비트를 나타낼 수 있는지 기억하고있다. (문자열을 변환했는지 또는 생성하고 있는지 기억하지 못한다.).
예를 들어, caracter 당 4 비트를 선택한 경우 출력 문자열은 16 진수 문자 (0-9 A-F)로만 구성됩니다. caracter 당 5 비트를 선택한 경우 출력 문자열에는 32 문자 (2^5)가 있어야하므로 출력 문자열에는 16 진수가 아닌 문자가 더 많이 포함됩니다. charater 당 6 비트를 선택한 경우 2^6 = 64 문자의 알파벳이 사용되었습니다.
물론 문자 당 비트 수가 많을수록 출력 문자열이 짧아집니다.나는이 일을하는 함수가 무엇인지 기억하지 못한다.

내가 아는 사람이 누구인가? PHP에 내장 된 함수가 있었지만 찾을 수 없다고 확신합니다.

답변

2

아마도 base_convert()을 찾고 계십니까?

+0

+1 예. 나는 그가 그렇다고 믿습니다. – Josh

+0

아니, 그게 아니야. 이제는이 기능이 해시 생성기라는 것을 기억하기 시작합니다. 사용하려는 알파벳의 크기 (16,32,64 문자 - 문자 당 4, 5 또는 6 비트)를 선택할 수 있습니다. 하지만 다른 언어 (자바일지도 모름)에 있다고 생각하기 시작했습니다. –

+1

생성 해시는 인코딩과 관련이 없습니다. 바이트 배열을 한 번에 X 비트 씩 가져 오는 문자열로 변환하는 방법에 대해 설명합니다. 자바에서'Integer.toString (value, radix)'를 사용하면 PHP의 대안은'base_convert()'입니다. 두 경우 모두 소스 바이트 배열을 X 비트 길이의 토큰으로 분할하려면 비트 조작을해야합니다. PHP는 X = 4 - bin2hex() 및 X = 6 -'base64_encode()'에 대한 준비가되어 있습니다. – ChssPly76

관련 문제