PHP의 base64_decode()를 Java로 전환

최준호·2022년 8월 26일
0

PHP to JAVA

목록 보기
2/2
post-thumbnail

참고 JAVA 암호화 및 PHP 복호화

📗 PHP의 base64_decode()

php에서 openssl_decode()는 java에서 decoding 역할을 해준다. java로 전환해보는 과정을 같이 해보자!

✍ Base64

복호화를 하기 전에 대부분의 문자열은 Base64를 기준으로 암호화되어 있다. 그 이유는 통신 프로토콜에 따라 다르겠지만 인터넷의 URL을 사용할 경우 &,=,+ 등 특수기호들은 url에서 자동으로 변환되어진다. 이를 디코딩할 때 또 깨질수가 있기 때문에 대부분 데이터의 문자열을 전달하기 전 통일된 하나의 암호화 모듈로 암호화하여 깨짐을 방지하는 역할도 한다.

Base64는 java, php, python 등 어떤 언어든 java.util, apache.common 등 어떤 라이브러리에서도 동일하게 작동한다. 사용법은 조금 다를 수 있지만

📄 php

echo(base64_decode("anVubw=="));

anVubw== 값은 juno 값을 인코딩한 값이다. 해당 소스를 php로 돌려보면

다음 결과를 확인할 수 있다. 그럼 이걸 java로 똑같이 해보자!

📄 java

public void decode(String str) throws Exception{

    Encoder encoder = Base64.getEncoder();
    byte[] encode = encoder.encode("juno".getBytes(StandardCharsets.UTF_8));
    log.debug("encode = {}", new String(encode));

    Decoder decoder = Base64.getDecoder();
    byte[] decode = decoder.decode(encode);
    log.debug("decode = {}", new String(decode));
}

java의 경우 다음과 같이 작성하면 된다. Base64의 import의 경우 아무거나 사용해도 상관 없지만 나랑 동일한 코드로 사용하고 싶다면 java.util에 있는 Base64를 사용하면 된다.

결과도 동일하게 얻을 수 있었다.

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글