base64
1 import base64
2
3
4 def encode(s):
5 bytes_s = s.encode(encoding='utf-8')
6 b64en_s = base64.b64encode(bytes_s)
7 print("加密后:{}".format(b64en_s))
8 return
9
10
11 def decode(s):
12 b64de_s = base64.b64decode(s).decode('utf-8')
13 print("解密后:{}".format(b64de_s))
14 return
15
16
17 if __name__ == "__main__":
18 data = input('请输入字符串:')
19 print("选项:\n1、加密 2、解密")
20 op = int(input('请输入你的选择:'))
21 if op == 1:
22 encode(data)
23 else:
24 decode(data)
凯撒密码
1 def Caesar(s):
2 print('初始的字符串:{}'.format(s))
3 if 'A' <= s[0] <= 'Z':
4 for i in range(1, 27):
5 offset_s = ''
6 for j in range(len(s)):
7 tmp = (ord(s[j]) + i)
8 if tmp > ord('Z'):
9 tmp -= 26
10 offset_s += chr(tmp)
11 print('偏移值为{}的字符串:{}'.format(i, offset_s))
12 else:
13 for i in range(1, 27):
14 offset_s = ''
15 for j in range(len(s)):
16 tmp = (ord(s[j]) + i)
17 if tmp > ord('z'):
18 tmp -= 26
19 offset_s += chr(tmp)
20 print('偏移值为{}的字符串:{}'.format(i, offset_s))
21 return
22
23
24 if __name__ == '__main__':
25 data = input('请输入字符串:')
26 Caesar(data)
md5
1 # 由于MD5模块在python3中被移除
2 # 在python3中使用hashlib模块进行md5操作
3
4 import hashlib
5
6 # 待加密信息
7 str = input('请输入要加密的字符串:')
8
9 # 创建md5对象
10 m = hashlib.md5()
11
12 # Tips
13 # 此处必须encode
14 # 若写法为m.update(str) 报错为: Unicode-objects must be encoded before hashing
15 # 因为python3里默认的str是unicode
16 # 或者 b = bytes(str, encoding='utf-8'),作用相同,都是encode为bytes
17 b = str.encode(encoding='utf-8')
18 m.update(b)
19 str_md5 = m.hexdigest()
20 # md5在线解密网站:https://cmd5.com/
21
22 print('MD5加密前为 :' + str)
23 print('MD5加密后为 :' + str_md5)
24
25 # 另一种写法:b‘’前缀代表的就是bytes
26 # str_md5 = hashlib.md5(b'this is a md5 test.').hexdigest()
27 # print('MD5加密后为 :' + str_md5)
莫斯密码(需要分隔符)
1 # 没有分割符的话,可以试试在线网站:http://zhongguosou.com/zonghe/moErSiCodeConverter.aspx
2 MorseList = {
3 ".-": "A", "-...": "B", "-.-.": "C", "-..": "D", ".": "E", "..-.": "F", "--.": "G",
4 "....": "H", "..": "I", ".---": "J", "-.-": "K", ".-..": "L", "--": "M", "-.": "N",
5 "---": "O", ".--.": "P", "--.-": "Q", ".-.": "R", "...": "S", "-": "T",
6 "..-": "U", "...-": "V", ".--": "W", "-..-": "X", "-.--": "Y", "--..": "Z",
7
8 "-----": "0", ".----": "1", "..---": "2", "...--": "3", "....-": "4",
9 ".....": "5", "-....": "6", "--...": "7", "---..": "8", "----.": "9",
10
11 ".-.-.-": ".", "---...": ":", "--..--": ",", "-.-.-.": ";", "..--..": "?",
12 "-...-": "=", ".----.": "'", "-..-.": "/", "-.-.--": "!", "-....-": "-",
13 "..--.-": "_", ".-..-.": '"', "-.--.": "(", "-.--.-": ")", "...-..-": "$",
14 ".-...": "&", ".--.-.": "@", ".-.-.": "+",
15 }
16
17
18 def morse(string: object, sign: object) -> object:
19 # 分割,字符串string,分割标识符sign
20 lists = string.split(sign)
21 print('解密后:',end='')
22 for code in lists:
23 print(MorseList.get(code), end="")
24
25
26 if __name__ == '__main__':
27 data = input('请输入带分隔符的字符串:')
28 morse(data,'/')
URL编码
1 import urllib.parse
2
3
4 def URL_en(s):
5 print("URL编码:{}".format(urllib.parse.quote(s)))
6 return
7
8
9 def URL_de(s):
10 print('URL解码:{}'.format(urllib.parse.unquote(s)))
11 return
12
13
14 def menu(data_s):
15 op = int(input('1、编码 2、解码\n请输入选项:'))
16 if op == 1:
17 URL_en(data_s)
18 else:
19 URL_de(data_s)
20 return
21
22
23 if __name__ == '__main__':
24 data = input('请输入数据:')
25 menu(data)