2010-05-08 5 views
2

저는 crypto ++를 사용하여 AES 암호화 된 HTTP 요청을 앱 엔진에 보내어 거기에서 암호 해독을 계획하고 있습니다. 내 계획은 '?'뒤에 부분을 암호화하는 것입니다. 그래서 그것은 다음과 같습니다 :crypto ++/pycrypto with Google 앱 엔진

http://myurl.com/Command?eiwjfsdlfjldkjfs 암호화되어있는 경우입니다. 그러나, 나는 다른 끝에서 암호를 해독하는 방법을 알아 내야하고 여전히 사용자는 args를 얻기 위해 응답에 get()을합니다. 내가 잘못된 접근법을 취하고 있다고 조언 할 수 있습니까? 해독하고 get()을 사용하지 않고 내 파서를 사용해야하나요?

http://myurl.com/Command?q=eiwjfsdlfjldkjfs 

그런 다음, 요청 처리기에서,이 같은 암호화 된 메시지를 얻을 수있을 것입니다 :

답변

3

나는이 같은 URL 생성해야한다고 생각

encrypted_string = self.request.get('q') 

편집을 :

이 그것을 수행하는 방법입니다 :

import Crypto 
from Crypto.Cipher import ARC4 
obj=ARC4.new('stackoverflow') 
plain = urllib.urlencode({'param1': 'v1', 'param2': 'v2'}) 
ciph = obj.encrypt(plain) 
url = 'myurl.com/Command?%s' % urllib.urlencode({'q': ciph}) 
#url should be 'myurl.com/Command?q=%D4%2B%E5%FA%04rE.%1C.%81%0C%B6t%DCl%F8%84%EB' 

2)를 해독 : : 다음 여러 매개 변수가있는 경우

ciph = self.request.get('q') 
obj=ARC4.new('stackoverflow') 
plain = obj.decrypt(ciph) 
get_data = cgi.parse_qs(plain) # {'param2': ['v2'], 'param1': ['v1']} 
+0

그래서, 내가 개별적으로 암호화하고 각 매개 변수의 암호를 해독해야1) URL을 만드는 방법? 나는 이것을 고려했지만, 이것이 표준 방법이 있다면 표준 방법이라고 확신하지 못했습니다. 그냥 매개 변수 이름을 노출하지 않을까요? – Joey

+0

나는 모든 매개 변수를 한 번에 암호화하는 방법을 설명하기 위해 내 대답을 편집했습니다. 희망이 도움이됩니다. – jbochi

+0

감사합니다. 편집하면 도움이됩니다. 그러나 내 암호 해독에 실패했습니다. 'ascii'코덱이 0-7 위치의 문자를 인코딩 할 수 없습니다. 위로 읽은 후 암호를 해독하기 전에 암호화를 위해 encode()를 호출해야합니다. 그 오류를 없앴습니다. 내 NSString URL에서 getCString 때 인코딩 "NSUTF8StringEncoding"때문에 'utf-8'사용됩니다. 샘플 문자열에서이 작업을 시도하면 일반 var에 결과가 완전히 엉망이됩니다. 왜 그런가? – Joey