마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

[부탁드려요] 안드로이드 openSSL문의 입니다.

0 추천
현재 암호화문제로 인하여 OpenSSL 사용하려고 하는데, 쉽지 않네요.

ndk는 설치하였고, 테스트로 JNI로 스트링 출력까지는 확인을 했습니다.

실질적으로는 byte[]로 출력하고 싶은데,

안드로이드에서 OpenSSL사용법 아시면 도움 좀 부탁드립니다.
쮸뿌쮸뿌 (2,470 포인트) 님이 2016년 5월 24일 질문

2개의 답변

0 추천
어떤 암호를 쓰시려하시는데요.. AES, DES, RSA, X509 등 어지간한 암호화 알고리즘은 java에 매핑 되어 있습니다.  디컴파일러 같은 것을 통해 암호 로직을 분석 되지 않아야하는 상황이거나, 속도 이슈로 native버퍼만 사용하는 경우가 아니라면 힘들게 NDK를 사용하여 native openssl을 사용하실 필요가 없습니다.
 

https://developer.android.com/reference/javax/net/ssl/package-summary.html

https://developer.android.com/reference/javax/crypto/Cipher.html
익명사용자 님이 2016년 5월 24일 답변
2016년 5월 24일 수정
DES입니다. 딱히 속도이슈나 그런것이 아니라, 데모준비를 위해 사용하려는 것 뿐입니다. 정보 감사합니다.
0 추천
openssl 보안문제로 사용하시면 안될 터인데요 ??

native 에서 꼭 사용해야 하는 게 아니면 java 단에서 처리하시는 편이 나아 보입니다.

꼭 써야 한다면 https://github.com/guardianproject/android-external-openssl-ndk-static 여길 참조해보세요
aucd29 (218,390 포인트) 님이 2016년 5월 25일 답변
Cipher을 이용해서,    final Cipher cipher = Cipher.getInstance("DESede/ECB/NoPadding"); 이런식으로 구현해주면 되는게 맞는지..ㅠㅠㅠㅠㅠ
public static final String PKCS5 = "DES/ECB/PKCS5Padding"; // 패딩 쓰실거면
public static final String NOPAD = "DES/ECB/NoPadding"; // 패딩 안쓰실거면
...