• 常见编码解码脚本


    在平时我们会遇到各种各样的编码,在这里,我总结了一些常见的编码,并不是很全

    尝试着做了个编码解码的汇总,并且写了个脚本出来,由于python功底不是很强,所以可能会有不到之处,还望各位多多指正

    附上脚本:

      1 #-*-coding:utf-8-*-
      2 #author:hell0_w
      3 #本人博客:http://hell0w.cnblogs.com/
      4 
      5 import base64
      6 import bubblepy
      7 import urllib
      8 import quopri
      9 import cgi
     10 import HTMLParser
     11 
     12 #加密函数:
     13 def base16_encode(content):
     14     return base64.b16encode(content)
     15 def base32_encode(content):
     16     return base64.b32encode(content)
     17 def base64_encode(content):
     18     return base64.b64encode(content)
     19 def BubbleBabble_encode(content):
     20     return bubblepy.BubbleBabble().encode(content)
     21 def url_encode(content):
     22     return urllib.quote(content)
     23 def dec_binary(content):
     24     list = []
     25     for i in content.split(' '):
     26         list.append(bin(int(i)).replace('0b',''))
     27     return list
     28 def str_binary(content):
     29     list = []
     30     for i in content:
     31         list.append(ord(i))
     32     list1 = []
     33     for j in list:
     34         list1.append(bin(int(j)).replace('0b',''))
     35     return list1
     36 def quoted_printable_encode(content):
     37     return quopri.encodestring(content)
     38 def HtmlParser_encode(content):
     39     return cgi.escape(content)
     40 
     41 
     42 #解密函数:
     43 def base16_decode(content):
     44     return base64.b16decode(content)
     45 def base32_decode(content):
     46     return base64.b32decode(content)
     47 def base64_decode(content):
     48     return base64.b64decode(content)
     49 def BubbleBabble_decode(content):
     50     return bubblepy.BubbleBabble().decode(content)
     51 def url_decode(content):
     52     return urllib.unquote(content)
     53 def binary_dec(content):
     54     list = []
     55     for i in content.split(' '):
     56         list.append(int(i,2))
     57     return list
     58 def binary_str(content):
     59     list = []
     60     for i in content.split(' '):
     61         list.append(int(i,2))
     62     list1 =[]
     63     for j in list:
     64         list1.append(chr(j))
     65     return ''.join(list1)
     66 def quoted_printable_decode(content):
     67     return quopri.decodestring(content)
     68 def HtmlParser_decode(content):
     69     return HTMLParser.HTMLParser().unescape(content)
     70 
     71 
     72 def encode():
     73     print "[1]:base16编码"
     74     print "[2]:base32编码"
     75     print "[3]:base64编码"
     76     print "[4]:BubbleBabble编码"
     77     print "[5]:url编码"
     78     print "[6]:十进制转二进制"
     79     print "[7]:字符串转二进制"
     80     print "[8]:quoted-printable编码"
     81     print "[9]:HTML实体编码"
     82     operation = input("请选择:")
     83     strs = raw_input("请输入需要加密的字符串:")
     84     if operation == 1:
     85         try:
     86             print "[+]加密的结果为:%s " % base16_encode(strs)
     87         except Exception,e:
     88             print e
     89 
     90     elif operation == 2:
     91         try:
     92             print "[+]加密的结果为:%s " % base32_encode(strs)
     93         except Exception,e:
     94             print e
     95 
     96     elif operation == 3:
     97         try:
     98             print "[+]加密的结果为:%s " % base64_encode(strs)
     99         except Exception,e:
    100             print e
    101 
    102     elif operation == 4:
    103         try:
    104             print "[+]加密的结果为:%s " % BubbleBabble_encode(strs)
    105         except Exception,e:
    106             print e
    107     
    108     elif operation == 5:
    109         try:
    110             print "[+]加密的结果为:%s " % url_encode(strs)
    111         except Exception,e:
    112             print e
    113         
    114     elif operation == 6:
    115         try:
    116             print "[+]加密的结果为:%s " % dec_binary(strs)
    117         except Exception,e:
    118             print e
    119 
    120     elif operation == 7:
    121         try:
    122             print "[+]加密的结果为:%s " % str_binary(strs)
    123         except Exception,e:
    124             print e
    125     
    126     elif operation == 8:
    127         try:
    128             print "[+]加密的结果为:%s " % quoted_printable_encode(strs)
    129         except Exception,e:
    130             print e
    131     
    132     elif operation == 9:
    133         try:
    134             print "[+]加密的结果为:%s " % HtmlParser_encode(strs)
    135         except Exception,e:
    136             print e
    137     else:
    138         print "error!"
    139         encode()
    140     
    141 
    142 def decode():
    143     print "[1]:base16解码"
    144     print "[2]:base32解码"
    145     print "[3]:base64解码"
    146     print "[4]:BubbleBabble解码"
    147     print "[5]:url解码"
    148     print "[6]:二进制转十进制"
    149     print "[7]:二进制转字符串"
    150     print "[8]:quoted-printable解码"
    151     print "[9]:HTML实体解码"
    152     operation = input("请选择:")
    153     strs = raw_input("请输入需要解密的字符串:")
    154     if operation == 1:
    155         try:
    156             print "[+]解密的结果为:%s " % base16_decode(strs)
    157         except Exception,e:
    158             print "Error!Not base16 encoding!"
    159 
    160     elif operation == 2:
    161         try:
    162             print "[+]解密的结果为:%s " % base32_decode(strs)
    163         except Exception,e:
    164             print "Error!Not base32 encoding!"
    165 
    166     elif operation == 3:
    167         try:
    168             print "[+]解密的结果为:%s " % base64_decode(strs)
    169         except Exception,e:
    170             print "Error!Not base64 encoding!"
    171 
    172     elif operation == 4:
    173         try:
    174             print "[+]解密的结果为:%s " % BubbleBabble_decode(strs)
    175         except Exception,e:
    176             print "Error!Not BubbleBabble encoding!"
    177     
    178     elif operation == 5:
    179         try:
    180             print "[+]解密的结果为:%s " % url_decode(strs)
    181         except Exception,e:
    182             print "Error!Not url encoding!"
    183         
    184     elif operation == 6:
    185         try:
    186             print "[+]解密的结果为:%s " % binary_dec(strs)
    187         except Exception,e:
    188             print "Error!Not binary encoding!"
    189 
    190     elif operation == 7:
    191         try:
    192             print "[+]解密的结果为:%s " % binary_str(strs)
    193         except Exception,e:
    194             print "Error!Not binary encoding!"
    195     
    196     elif operation == 8:
    197         try:
    198             print "[+]解密的结果为:%s " % quoted_printable_decode(strs)
    199         except Exception,e:
    200             print "Error!Not quoted-printable encoding!"
    201     
    202     elif operation == 9:
    203         try:
    204             print "[+]解密的结果为:%s " % HtmlParser_decode(strs)
    205         except Exception,e:
    206             print "Error!Not HtmlParser encoding!"
    207     else:
    208         print "error!"
    209         decode()
    210 
    211 
    212 def main():
    213     print "[1]:加密"
    214     print "[2]:解密"
    215     operation = input("请选择:")
    216     if operation == 1:
    217         encode()
    218     elif operation == 2:
    219         decode()
    220     else:
    221         print "error!"
    222         main()
    223     
    224 if __name__ == '__main__':
    225     main()

    运行示例:

    加密:

    解密:

     本文固定连接:http://www.cnblogs.com/hell0w/p/7512211.html  转载请注明出处,谢谢!

  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/hell0w/p/7512211.html
Copyright © 2020-2023  润新知