Tip & Tech2010.03.20 00:52




안드로이드에서 Base64 인코딩 디코딩 하기

Base64 Encoding / Decoding in Android

 

안드로이드 OS는 이미 apache codec 1.3의 Base64를 가지고 있다.

Android OS already has the Base64 of apache codec 1.3.

 

 

 

public static byte[] encodeBase64(byte [] binaryData) {
    byte [] buf = null;
       
    try {
        Class Base64 = Class.forName("org.apache.commons.codec.binary.Base64");
        Class[] parameterTypes = new Class[] { byte[].class }; 
        Method encodeBase64 = Base64.getMethod("encodeBase64", parameterTypes);
        buf = (byte[])encodeBase64.invoke(Base64, binaryData);
    } catch (Exception e) {
        e.printStackTrace();
    }       
       
    return buf;
}

 

 

public static byte[] decodeBase64(byte [] base64Data) {
    byte [] buf = null;
       
    try {
        Class Base64 = Class.forName("org.apache.commons.codec.binary.Base64");
        Class[] parameterTypes = new Class[] { byte[].class }; 
        Method decodeBase64 = Base64.getMethod("decodeBase64", parameterTypes);
        buf = (byte[])decodeBase64.invoke(Base64, base64Data);
    } catch (Exception e) {
        e.printStackTrace();
    }       
       
    return buf;
}

 

안드로이드 android base64 encoding decoding apache codec

신고
Posted by virgo81

댓글을 달아 주세요

  1. great post as usual!

    2010.05.03 22:56 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. 김준기

    황인환 ...자료 잘 봤다~

    2010.05.11 20:36 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 김준기

    니도 안드로이드 하나보군

    2010.05.11 20:37 신고 [ ADDR : EDIT/ DEL : REPLY ]

Tip & Tech2010.02.04 23:09

 

신뢰되지 않은 루트 인증서를

안드로이드 에뮬레이터에 설치하는 방법

 

How to install a untrusted root certificate

to android emulator

 

 

1. 작업 디렉토리를 만듭니다. (WORKDIR)

2. 루트 인증서(MYROOT.CER)를 WORKDIR 로 옮깁니다.

3. 첨부 파일을 WORKDIR로 다운로드 받습니다.

 

 

 

 

 

4. http://www.bouncycastle.org/latest_releases.html에서 Bouncy Castle Crypto API 라이브러리를 다운로드 받습니다.
 예) http://www.bouncycastle.org/download/bcprov-jdk16-145.jar

5. 다운로드 받은 jar 파일을 "$JAVA_HOME\jre\lib\ext" 디렉토리로 옮깁니다.
 예) C:\Program Files (x86)\Java\jdk1.6.0_18\jre\lib\ext

6. -partition-size 옵션과 함께 에뮬레이터를 실행합니다.
    usage: emulator -partition-size [size] -avd [target-avd]
    ex: emulator -partition-size 256 -avd my_android2.0

7. 부팅 과정을 기다립니다.

8. 명령 프롬프트에서 다음 명령들을 실행합니다.

     adb pull /system/etc/security/cacerts.bks cacerts_org.bks
 
     copy cacerts_org.bks cacerts.bks

     keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file MYROOT.CER
         Trust this certificate? [no]:  y


    adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
 
    adb push cacerts.bks /system/etc/security/cacerts.bks


hosts 파일도 수정하기 원한다면.
#-- 시작

    adb pull /system/etc/hosts hosts_org

    copy hosts_org hosts
#-- 끝

hosts 파일을 수정합니다.

hosts 파일도 수정하기 원한다면.
#-- 시작
    adb push hosts /system/etc/hosts
#-- 끝

    adb push mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2

    adb shell chmod 777 /data/data/temp/mkfs.yaffs2

    mkfs.yaffs2 /system /data/data/temp/system.img

    adb pull /data/data/temp/system.img system.img

    adb shell mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system

9. "당신의 androidSDK 홈\platforms\target-version\images" (IMAGEHOME) 디렉토리로 이동합니다.
    예) E:\dev\android-sdk-windows\platforms\android-2.0\images

10. system.img 파일을 백업합니다
    ex) system.img를 system.img.org로 이름 변경합니다.

11. WORKDIR\system.img 를 IMAGEHOME 으로 이동합니다.

12. 에뮬레이터를 종료합니다.

13. 에뮬레이터를 새로 시작합니다.

14. 안드로이드 브라우저를 이용하여 당신의 사이트에 접속합니다.

15. 보안 관련 메시지가 안나타나면, 성공입니다.

 

 

1. Make a directory for working(WORKDIR).

2. Move your root certificate(MYROOT.CER) to WORKDIR.

3. Download the attached file to WORKDIR.

4. Download the Bouncy Castle Crypto API library from this site (http://www.bouncycastle.org/latest_releases.html).
 ex) http://www.bouncycastle.org/download/bcprov-jdk16-145.jar

 

5. Move the crypto API jar to "$JAVA_HOME\jre\lib\ext" directory.
    ex) C:\Program Files (x86)\Java\jdk1.6.0_18\jre\lib\ext

6. Run the emulator with -partition-size option.
    usage: emulator -partition-size [size] -avd [target-avd]
    ex: emulator -partition-size 256 -avd my_android2.0

7. Wait booting processing.

8. Run these commands in command prompt.

    adb pull /system/etc/security/cacerts.bks cacerts_org.bks
 
    copy cacerts_org.bks cacerts.bks

    keytool -keystore cacerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass changeit -importcert -trustcacerts -alias CACERT -file MYROOT.CER
         Trust this certificate? [no]:  y


    adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
 
    adb push cacerts.bks /system/etc/security/cacerts.bks


If you want to modify the hosts file.
#-- start

    adb pull /system/etc/hosts hosts_org

    copy hosts_org hosts
#-- end

Modify the hosts file.

If you want to modify the hosts file.
#-- start
    adb push hosts /system/etc/hosts
#-- end

    adb push mkfs.yaffs2.arm /data/data/temp/mkfs.yaffs2

    adb shell chmod 777 /data/data/temp/mkfs.yaffs2

    mkfs.yaffs2 /system /data/data/temp/system.img

    adb pull /data/data/temp/system.img system.img

    adb shell mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system

9. Go to "your android SDK home\platforms\target-version\images" (IMAGEHOME).
    ex) E:\dev\android-sdk-windows\platforms\android-2.0\images

10. Back up your system.img
    ex) Rename system.img to system.img.org

11. Move WORKDIR\system.img to IMAGEHOME

12. Terminate the emulator.

13. Relaunch the emulator.

14. Connect your site by android browser.

15. If there are no messages related security, success.

 

신고
Posted by virgo81

댓글을 달아 주세요

  1. 비밀댓글입니다

    2011.03.11 18:50 [ ADDR : EDIT/ DEL : REPLY ]
    • check the

      -partition-size option

      and

      adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system

      2011.08.23 00:03 신고 [ ADDR : EDIT/ DEL ]
  2. android 관련해서 큰 도움이 되었습니다.
    좋은 글 감사합니다.
    저는 Coherence 담당했었습니다. ㅋㅋ

    2012.01.31 20:22 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. Laurent

    Where can I find the root certificate ?

    2013.04.03 18:34 신고 [ ADDR : EDIT/ DEL : REPLY ]