Cocos2dx網路 一 環境 加密解密

2022-09-11 16:36:16 字數 3771 閱讀 2676

以前用過python+django做過課程設計,剛好sae也剛好支援,果斷就決定用它了。可以在本地建好專案再用svn提交到sae。django環境搭建見另一篇博文。

其它不多說,仿照公司主程寫的聯網,首先要解決的就是資料的加密解密。直接貼**:

1

import

hashlib

2import

base6434

#xxtea加密解密 from

5 _delta = 0x9e3779b9

6def

_long2str(v, w):

7 n = (len(v) - 1) << 2 8if

w:

9 m = v[-1]

10if (m < n - 3) or (m > n): return

''11 n =m

12 s = struct.pack('

<%il

' % len(v), *v)

13return s[0:n] if w else

s 14

15def

_str2long(s, w):

16 n =len(s)

17 m = (4 - (n & 3) & 3) +n

18 s = s.ljust(m, "\0"

) 19 v = list(struct.unpack('

<%il

' % (m >> 2), s))

20if

21return

v 22

23def

encryptxxtea(mystr, key):

24if mystr == '': return

mystr

25 v =_str2long(mystr, true)

26 k = _str2long(key.ljust(16, "\0"

), false)

27 n = len(v) - 1

28 z =v[n]

29 y =v[0]

30 sum =0

31 q = 6 + 52 // (n + 1)

32while q >0:

33 sum = (sum + _delta) & 0xffffffff

34 e = sum >> 2 & 3

35for p in

xrange(n):

36 y = v[p + 1]

37 v[p] = (v[p] + ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z))) & 0xffffffff

38 z =v[p]

39 y =v[0]

40 v[n] = (v[n] + ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[n & 3 ^ e] ^ z))) & 0xffffffff

41 z =v[n]

42 q -= 1

43return

_long2str(v, false)

4445

defdecryptxxtea(mystr, key):

46if mystr == '': return

mystr

47 v =_str2long(mystr, false)

48 k = _str2long(key.ljust(16, "\0"

), false)

49 n = len(v) - 1

50 z =v[n]

51 y =v[0]

52 q = 6 + 52 // (n + 1)

53 sum = (q * _delta) & 0xffffffff

54while (sum !=0):

55 e = sum >> 2 & 3

56for p in xrange(n, 0, -1):

57 z = v[p - 1]

58 v[p] = (v[p] - ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[p & 3 ^ e] ^ z))) & 0xffffffff

59 y =v[p]

60 z =v[n]

61 v[0] = (v[0] - ((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4) ^ (sum ^ y) + (k[0 & 3 ^ e] ^ z))) & 0xffffffff

62 y =v[0]

63 sum = (sum - _delta) & 0xffffffff

64return

_long2str(v, true)

6566

class

crypto:

67def

__init__

(self):68#

可以使用隨機密碼生成器

69 self.key="

ksay0el6o5uhidk"70

71#tab是字典

72def

encrypt(self, tab):73#

先轉成字串

74 mystr =str(tab)75#

xxtea加密

76 ciphertext =encryptxxtea(mystr, self.key)77#

base64加密

78 base64text =base64.encodestring(ciphertext).strip()79#

md5字串用以驗證

80 md5text =hashlib.md5(base64text).hexdigest()81#

組合字串

82 totaltext = md5text + "

$" +base64text

83return

totaltext

8485

defdecrypt(self, text):

86 strlist = text.split('$'

)87 md5text = hashlib.md5(strlist[1]).hexdigest()

88if md5text ==strlist[0]:

89 base64text = base64.decodestring(strlist[1])

90 ciphertext =decryptxxtea(base64text, self.key)

91return

eval(ciphertext)

92else:93

return #

md5不相同返回狀態-5

Cocos2d x學習筆記《01》 環境搭建

who1753 cocos2d 圍觀1181次 在win7下搭建cocos2d x的開發環境並不是很難,但是因為引擎版本及相關軟體版本的問題,實際安裝部署中可能會與文中說的有些出入,如果遇到錯誤,可上網查詢解決方案,基本都可在網上找到對應的解決方案。win7 visual studio 建議使用至少...

Cocos2d x Lua筆記一 環境搭建

對於cocos2d x用lua相比起c 來說更簡單,更快速。用lua的話。像之前比較多是用ldt啦,既然是用cocos,那就用cocos code ide。這款官方的編輯器是基於eclipse製作的,所以可以使用eclipse的眾多外掛程式了。咳咳。話雖如此但是我裝了個color theme根本就沒...

cocos2d x 2 2 1環境搭建

已經好久沒有碰cocos2d x呢,上次學習了點cocos2d iphone由於一些原因停止了,當時也順便研究了點cocos2d x 所以今天安裝的時候還是以前老方法 以往上面兩步後cocos2d x會自動安裝到xcode裡。再次新建專案時,即可看到cocos2d x模板 但是今天我安裝的cocos...