常见编码解码脚本

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

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

时间: 2024-10-19 11:01:57

常见编码解码脚本的相关文章

编码 解码 python

之前一直对python文件中编码解码糊里糊涂,今天看到一篇文章,觉得把我讲的有点明白了.写个心得吧. 1.编码解码是怎么一回事? Python 里面的编码和解码也就是 unicode 和 str 这两种形式的相互转化. 编码是 unicode -> str,相反的,解码就是 str -> unicode. str形式,也就是字符串形式都是以一定的编码格式存在的,常见的编码格式有utf-8.ASCII.gb2312等等. str1.decode('gb2312'),表示将gb2312编码的字符串

Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net

Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net 1. Base64编码,1 1.1. 子模式 urlsafe Or  url unsafe2 1.2. 其他的二进制数据表示法  bin2hex() ,Quoted-printable ,UUencode2 2. Base64常用api2 2.1. ------------解码api2 2.2. decode(String s, OutputStream out)2 2.3. 

VoIP常见编码的带宽计算

voip带宽计算VOIP计算方法与所选用的编码方法有关,而与哪个厂家的没有什么关系,公式如下: 带宽=包长度×每秒包数=包长度×(1/打包周期)=(Ethernet头+IP头+UDP头+RTP头+有效载荷)×(1/打包周期)=(208bit +160bit+64bit+96bit +有效载荷)×(1/打包周期)=(528bit+(打包周期(秒)×每秒的比特数))×(1/打包周期)=( 528 / 打包周期 ) + 每秒比特数 根据各种编码方式,得出: G711:20ms打包,带宽为 ( 528/

自定义协议的编码解码

2015.4.1 wqchen. 转载请注明出处 http://www.cnblogs.com/wqchen/p/4385798.html 本文介绍的是一个自定义协议的编码解码工具的实现. 游戏开发中,前端后端协议一般都会协商定制通信协议的格式,统一格式后用程序脚本对应前端和后端的编程语言,分别生成一份协议的编码和解码方案,便于协议的一致性. 这样的工具有很多,比较出名的是google的protobuf,它可以支持很多种编程语言.我也曾试用过protobuf,看过一点它的实现,protobuf完

编解码(编码解码)常识

字符编码 字符编码就是以二进制的数字来对应字符集的字符,常见字符编码方式有:ISO-8859-1(不支持中文),GB2312,GBK,UTF-8等.在JavaWeb中, 经常遇到的需要编码/解码的场景有响应编码/请求编码/URL编码: 响应编码 服务器发送数据给客户端由Response对象完成,如果响应数据是二进制流,就无需考虑编码问题.如果响应数据为字符流,那么就一定要考虑编码问题: response.getWriter()默认使用ISO-889-1发送数据,而该字符集不支持中文,因此遇到中文

python2和python3编码解码详解

今天让我们一起彻底揭开py编码的真相,包括py2和py3.有同学可能问:以后py3是大势所趋,还有必要了解py2那令人头疼的编码吗?答案是太有必要啦.py2在生产中还是中流砥柱. 什么是编码? 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种表示称为"明文"(plain text).对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文. 其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明文.从明文到编

JavaScript中的编码解码

1.URI 统一资源标识符(URI)是一个用于标识某一互联网资源名称的字符串.,该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作.Web上可用的每种资源 -HTML文档.图像.视频片段.程序等都可由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位. 在HTML中,URI被用来:链接到另一个文档或资源.链接到一个外部样式表或脚本等. 1.1.URI和URL.URN URL是统一资源定位符,它是一种具体的URI

[C语言]Base64编码解码

Base64编码解码 一,Base64编码原理 Base64编码的字符数组如下所示 : ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ 字符串转Base64编码:取3字节的字符串转换为四字节的字符串,依次往后转换.得到Base64编码字符串.具体原理如下: 1,如果需要编码的原串字节数刚好为3的倍数,那么转换规则如下: 以中文字符'严'为例,'严'字的UTF-8编码为:0xE4B8A5 = 11100100  10

服务器端获取表单数据的编码解码问题(servlet)

首先需要明确指出的是,这里的服务器是指tomcat. 在页面没有明确指定编码的情况下,客户端通过input标签和字符串向服务器传递两个值param1和param2.如果直接使用request.getParameter()方法来获取值的话,得到的肯定都是乱码,我们需要对其重新进行编码解码,就像下面的代码所示的那样: new String(req.getParameter("param1").getBytes("iso-8859-1"), "gbk"