{"id":1478,"date":"2023-02-03T13:53:39","date_gmt":"2023-02-03T05:53:39","guid":{"rendered":"http:\/\/175.24.184.226\/?p=1478"},"modified":"2023-02-08T09:19:50","modified_gmt":"2023-02-08T01:19:50","slug":"aes%e5%8a%a0%e5%af%86-python","status":"publish","type":"post","link":"\/?p=1478","title":{"rendered":"AES\u52a0\u5bc6 python"},"content":{"rendered":"<pre><code class=\"language-python\"># coding=utf-8\nfrom Crypto.Cipher import AES\nimport base64\n\n&#039;&#039;&#039;\n\u57fa\u4e8ebase64 \u7684AES\u52a0\u5bc6\n&#039;&#039;&#039;\n# 16\u4f4d\u7684key\nKey = &#039;HOY(*$^682Hihsr@&#039;.encode(&#039;utf-8&#039;)\n\n# \u52a0\u5bc6\ndef aesEncrypt(content):\n    BS = 16\n    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)\n    content1 = pad(content)\n    text = add_to_16(content1)\n    cryptos = AES.new(Key, AES.MODE_ECB)\n    cipher_text = cryptos.encrypt(text)\n    aes_base64 = base64.encodebytes(cipher_text)\n    m = str(aes_base64, encoding=&quot;utf-8&quot;)\n    return m\n\n# \u89e3\u5bc6\ndef aesDecrypt(text):\n    unpad = lambda s: s[0:-ord(s[-1])]\n    cryptos = AES.new(Key, AES.MODE_ECB)\n    base64_decrypted = base64.decodebytes(text.encode(encoding=&#039;utf-8&#039;))\n    content = cryptos.decrypt(base64_decrypted).decode(&#039;utf-8&#039;)\n    decrypted_text = unpad(content)\n    decrypted_code = decrypted_text.rstrip(&#039;\\0&#039;)\n    return decrypted_code\n\n# # \u5982\u679ctext\u4e0d\u8db316\u4f4d\u7684\u500d\u6570\u5c31\u7528\u7a7a\u683c\u8865\u8db3\u4e3a16\u4f4d\ndef add_to_16(value):\n    while len(value) % 16 != 0:\n        value += &#039;\\0&#039;\n    return str.encode(value)\n\nif __name__ == &quot;__main__&quot;:\n    &#039;&#039;&#039;\u52a0\u89e3\u5bc6\u6d4b\u8bd5&#039;&#039;&#039;\n    data = &quot;123&quot;\n    encode_data = aesEncrypt(data)\n    decode_data = aesDecrypt(encode_data)\n    print(&quot;data1:&quot; + encode_data)\n    print(&quot;data2:&quot;+decode_data)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p># coding=utf-8 from Crypto.Cipher import AES import base64 &#039;&#038;#0   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[130],"tags":[],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1478"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1478"}],"version-history":[{"count":2,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1478\/revisions"}],"predecessor-version":[{"id":1482,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/1478\/revisions\/1482"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1478"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1478"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1478"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}