반응형
IOS의 경우는 결제받은 영수증을 가지고 서버에서 IOS 인앱 서버로
유효한 영수증인지 확인 요청을해 해킹 여부를 판단할수 있습니다.
안드로이드에선 별도로 유효 영수증인지 확인해주는 서버가 없으미로
결제후 영수증 데이터와 Base64로 암호화된 영수증 데이터 둘을 게임 서버로 보내
Base64 Decode를 한후 두 영수증이 동일한지 체크하여 해킹을 막을수 있습니다.
아래는 게임서버쪽 영수증 체크 코드 입니다.
1 2 import java.security.KeyFactory; 3 import java.security.PublicKey; 4 import java.security.Signature; 5 import java.security.spec.X509EncodedKeySpec; 6 7 String receiptData = "영수증데이터"; 8 String receiptEncodeData = "암호화된 영수증데이터"; 9 String publicKeyStr = "퍼블릭키"; 10 11 PublicKey publicKey = null; 12 byte[] decodeKey = Base64.decodeBase64(publicKeyStr); 13 KeyFactory keyFactory = KeyFactory.getInstance("RSA"); 14 publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(decodeKey)); 15 16 Signature sig; 17 sig = Signature.getInstance("SHA1withRSA"); 18 sig.initVerify(publicKey); 19 sig.update(receiptData.getBytes()); 20 if(!sig.verify(Base64.decodeBase64(receiptEncodeData))){ 21 //영수증검증실패 22 }else{ 23 //영수증검증성공 24 }
반응형
'android' 카테고리의 다른 글
[webview] 안드로이드 웹뷰 배경색 검은색으로 변경하기 (0) | 2015.05.20 |
---|---|
[안드로이드] android zipalign tool was not found in the sdk 에러 코드 해결방법 (0) | 2015.05.17 |
[안드로이드] 구글 체크아웃 계좌정보 입력용 은행코드 표 (0) | 2013.09.03 |
[안드로이드] GridView에서 position 0번지 에러 (0) | 2013.06.04 |
[android] onPurchaseStateChange 함수 미호출 혹은 간혈적 호출 해결 (2) | 2012.12.17 |