-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvigenere.py
More file actions
37 lines (34 loc) · 875 Bytes
/
vigenere.py
File metadata and controls
37 lines (34 loc) · 875 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
print("""此代码没有主函数,使用时请自行调用加解密函数
加密:E(mingwen="family",key="good")\n解密:D(miwen="",key="good")""")
ss=""
for i in range(26):
ss+=chr(ord('A')+i)
#实现将字符串改为大写并删去非字母字符处理的函数
def deal(dd=""):
temp=""
for c in dd:
if c.upper() in ss:
temp+=c.upper()
return temp
#加密函数
def E(mingwen="family",key="good"):
i=0
miwen=""
key=deal(key)
mingwen=deal(mingwen)
LEN=len(key)
for c in mingwen:
miwen+=chr((ord(c)+ord(key[i%LEN]))%26+ord("A"))
i+=1
return miwen
#解密函数
def D(miwen="family",key="good"):
i=0
mingwen=""
key=deal(key)
miwen=deal(miwen)
LEN=len(key)
for c in miwen:
mingwen+=chr((ord(c)-ord(key[i%LEN]))%26+ord("A"))
i+=1
return mingwen