以前用過python+django做過課程設計,剛好sae也剛好支援,果斷就決定用它了。可以在本地建好專案再用svn提交到sae。django環境搭建見另一篇博文。
其它不多說,仿照公司主程寫的聯網,首先要解決的就是資料的加密解密。直接貼**:
1import
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...