-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUTF8_Convert.py
52 lines (32 loc) · 1.28 KB
/
UTF8_Convert.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
def Padding(string,laenge): #Erweitere auf laenge Stellen mit vorangestellten 0
while(len(string)%laenge!=0):
string='0' + string
return string
def SplitBlocks(einString,Splitter):
block=list()
for i in range(0,len(einString),Splitter): #Teile in Ner Bloecke
dump=''
for j in range(i,i+Splitter):
dump+=einString[j]
block.append(dump)
return block
def UTFConvert(plain): #Wandle Test in utf-8 um und erstelle CBC kompatible Bloecke, die 8 Stellen lang sind
s=list(plain)
for i in range(0,len(s)):
s[i]=ord(s[i])
einString =''
for i in range(0,len(s)): #erstelle einen string mit dualzahlen
dump = str(s[i])
dump = Padding(dump,4)
einString += dump
return einString
def UTFdeConvert(einString): #Array mit jeweils acht stellen die 0 oder 1 sind
einString = str(int(einString)) #Entferne fuehrende 0
einString = Padding(einString,4) #Erweitere wieder auf 11er Bloecke
block = SplitBlocks(einString,4) #Trenne in 11er Bloecke
output = ''
for wert in block:
wert = int(wert,10) #Erstelle aus der Dualzahl eine Dezimalzahl
wert = chr(wert) #Erhalte den utf-8 Gegenwert zu dieser Zahl
output += wert #Haenge die einzelnen Zeichen an den Output
return output