第七课&C2T2

课程导图-大图链接

C2T2现场照片

1 促进。反馈
2 List
2.1 for..in
2.1.1 从哪里取什么。。
2.2 生成器
2.3 迭代器
2.4 Pythonic
3 加密
4 卡
4.1 第一、二宇宙速度
4.2 突破-既是成长
4.3 钻研ing
4.4 提问
4.5 探寻
5 文档
5.1 内化
5.2 用自己的经历判定
5.2.1 分解步数
5.3 逼自己
5.3.1 完成任务
5.3.1.1 子问题
5.3.1.1.1 细化
6 AKA阿卡原理
6.1 ALL Know All
7 PS
7.1 核心目标:思维升级
7.2 跳级
7.2.1 知识点
7.3 加速MVP速度
7.3.1 本地模拟化
7.3.2 可用度的的升级
8 《Head First HTML与CSS、XHTML(中文版) 》
8.1 Subtopic
9 oauth
10 list and .join
10.1 http://blog.sina.com.cn/s/blog_7b6a07420101l6e0.html

加密

  • 加密 演示链接
  • md5 + base64

        # 在ipython中运行,一行一行执行
    
        from hashlib import md5
    
         a= "人生苦短,我用py"
         md5(a).hexdigest()
    
         from base64 import urlsafe_b64encode,urlsafe_b64decode
    
       urlsafe_b64encode(a)
       _safe = urlsafe_b64encode(a)
       print urlsafe_b64decode(_safe)    #win CMD 下输出会是乱码:浜虹敓鑻︾煭锛屾垜鐢╬y

       #没关系,解码。。

       print urlsafe_b64decode(_safe).decode('utf-8') #人生苦短,我用py

base64 就是可逆操作的编码,base64就是可逆操作的编码

大妈的例子核心代码:

     #加密
     def gen_sign(msg):
       _base = "{}&{}".format(XCFG.APPKEY,msg.encode('utf8'))
       #print _base
       _safe = urlsafe_b64encode(_base)
       #print _safe
       _tag = "{}{}".format(_safe,XCFG.SECRET)
       #print _tag
       _sign = md5(_tag).hexdigest()
       return _safe,_sign


     def s_encr(msg):
       #print XCFG.ROOT
       _ts = "%.3f" % (time())
       print _ts
       _safe,_sign = gen_sign(msg)
       #print _sign
       _uri = urlsafe_b64encode("q={}&ts={}&sign={}".format(_safe,_ts,_sign))
       #print _uri
       return _uri
     def s_decr(qcode):
      #print qcode
      _uri = urlsafe_b64decode(qcode)
      #print _uri
      q_dict = {}
      for q in _uri.split('&'):
        item = q.split('=')
        q_dict[item[0]] = item[1]
     _msg = urlsafe_b64decode(q_dict['q']).split('&')[1]
     _safe,_sign = gen_sign(_msg.decode('utf8'))


      #客户端解密:
      _uri = s_encr(u'是也乎') 
      print s_decr(_uri)
      r = requests.get("%s/encr/%s"%(XCFG.ROOT,_uri)) 
      pp.pprint(r.json())
  • 解密

感想

  • 加密
    • 单一的加密算法会被撞库
    • 通过各种算法嵌套实现复杂加密
    • 服务器端增加sleep函数避免恶意攻击
  • 迭代

    • MVP
    • 快速迭代
      • 迭代环境的搭建:先本地→上线验证
      • 工具的使用:学会利用插件、模块
  • 每次仇恨一个东西,你就失去了向它学习的机会。