zoukankan      html  css  js  c++  java
  • 常见编码解码脚本

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

    尝试着做了个编码解码的汇总,并且写了个脚本出来,由于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  转载请注明出处,谢谢!

  • 相关阅读:
    待完成
    [NOI2006]神奇口袋
    [UVA 10529]Dumb Bones
    概率与期望习题总结
    [SHOI2012]随机树
    [luogu3412]仓鼠找sugar II
    [CF908D]New Year and Arbitrary Arrangement
    [清华集训]小 Y 和恐怖的奴隶主
    [SDOI2015]序列统计
    [luogu3600]随机数生成器
  • 原文地址:https://www.cnblogs.com/hell0w/p/7512211.html
Copyright © 2011-2022 走看看