lubuntu 15.04에서 Java 기반 neo4j 그래프 데이터베이스를 사용하고 있습니다.
neo4j HTTP 인증 헤더는 'username : password'(따옴표 제외)의 base64 인코딩을 사용합니다. wireshark를 사용하면 neo4j에 의해 생성 된 base64 코드를 볼 수 있습니다.
그러나 우분투 coreutils base64를 사용하여 동일한 문자열을 인코딩하면 약간 다른 인코딩이 발생합니다. 이 인코딩은 neo4j에서 허용되지 않습니다.
두 인코딩 모두 올바른 username : password 문자열로 디코딩
예
username = neo4j
및 비밀번호 =@N
Neo4j는 인코딩 된 값의 부여 neo4j:@N
등 bmVvNGo6QE4=
을 디코딩 neo4j:@N
예상을
$ echo 'bmVvNGo6QE4=' | base64 --decode
neo4j:@N
Ubuntu coreutils base64
는 인코딩 된 값인 neo4j:@N
as bmVvNGo6QE4K
(마지막 문자가 다름)를 반환 하지만 여전히 올바르게 디코딩합니다.
$ echo 'neo4j:@N' | base64
bmVvNGo6QE4K
$ echo 'bmVvNGo6QE4K' | base64 --decode
neo4j:@N
왜 이런거야? 일관된 인코딩을 얻으려면 무엇이 필요합니까?
=
정상 Base64로에 패딩 (끝 부분 만 유효). 하나의 인코딩 된 문자열에 패딩이 있고 다른 인코딩 된 문자열에 패딩이 없다는 사실 (또는 더 일반적으로 두 문자열의 패딩 양이 다름)은 길이 가 다르 므로 동일하지 않을 수 있습니다.