apiインタフェースのセキュリティ問題を最も簡単な方法で解決し、ほとんど解読できません.


シーンの説明
プロジェクトはサードパーティにapiサービスインタフェースを提供する必要があります.インタフェースはコア機能に関連し、インタフェースの安全をどのように保証するか.身分偽造、データ改ざん防止?
構想
           ,      。      ,      ,  。

    https       。      ?

  。

      (hmac)。

アルゴリズムの説明
  • 訪問者
  • 1.       ,     key   ,  key1=value1&key2=value2&....&secret_key=...
    2.         md5,    sign
    3.  sign         
    
  • 被訪問者
  •           ,       secret_key.
    1.  app_id  secret_key
    2.      ,     key1=value1&key2=value2....&secret_key=...
    3.       md5,  sign。    sign,         
    

    効果
  • 鍵は双方の機器にのみ存在し、
  • を切り取ることは不可能である.
  • 署名は偽造できず、同じ身分は偽造できず、メッセージは改ざんできない
  • .
    hmac認証を使用すると、インタフェースが解読されることは基本的に不可能です.
    python実装
    import md5
    
    app_id=123
    secret_key="xxxxxxxx"
    
    request_param = dict(
        key1="value1",
        key2="value2",
        key3="value3"
    )
    
    def sign():
        params = ["%s=%s" % (key, value) for key, value in sorted(request_param.items(), key=lambda item: item[0])]
        params.append("secret_key=%s" % secret_key)
        str_param = "&".join(params)
        print str_param
        md = md5.md5()
        md.update(str_param)
        return md.hexdigest()
    
    if __name__ == '__main__':
        print(sign())
    

    ソースはapiインタフェースのセキュリティ問題を最も簡単な方法で解決し、ほとんど解読できません.
    この一生の必見の科学実験-水は答えを知っています《凡四訓》詳しく解いた改過の法印光大師十念法(胡小林主講第1集)精神病はどうして百病の源を治すことができません