
Code: Alles auswählen
Procedure.s EnAES(String$)
While Len(String$) < 16
String$+Chr(10)
Wend
*CipheredString = AllocateMemory(Len(String$)+1)
If AESEncoder(@String$, *CipheredString, Len(String$), ?Key, 256, ?Init)
Output$ = PeekS(*CipheredString)
EndIf
ProcedureReturn Output$
EndProcedure
Procedure.s DeAES(String$)
*DecipheredString = AllocateMemory(Len(String$)+1)
If AESDecoder(@String$, *DecipheredString, Len(String$), ?Key, 256, ?Init)
Output$ = PeekS(*DecipheredString)
EndIf
While Right(Output$,1) = Chr(10)
Output$ = Left(Output$,Len(Output$)-1)
Wend
ProcedureReturn Output$
EndProcedure
Debug EnAES("kleiner Text")
Debug DeAES(EnAES("kleiner Text"))
DataSection
Key:
Data.b $06, $a9, $21, $40, $36, $b8, $a1, $5b, $51, $2e, $03, $d5, $34, $12, $00, $06
Init:
Data.b $3d, $af, $ba, $42, $9d, $9e, $b4, $30, $b4, $22, $da, $80, $2c, $9f, $ac, $41
EndDataSection
Code: Alles auswählen
Procedure.s EnAES(String$)
While Len(String$) < 16
String$+Chr(10)
Wend
*CipheredString = AllocateMemory(Len(String$)+1)
If AESEncoder(@String$, *CipheredString, Len(String$), ?Key, 256, ?Init)
AESCode$ = PeekS(*CipheredString)
EndIf
For n = 1 To Len(AESCode$)
Output$ + Str(Asc(Mid(AESCode$,n,1))) + " "
Next
ProcedureReturn Output$
EndProcedure
Procedure.s DeAES(String$)
For n = 1 To CountString(String$," ")
ToDecode$ + Chr(Val(StringField(String$,n," ")))
Next
*DecipheredString = AllocateMemory(Len(ToDecode$)+1)
If AESDecoder(@String$, *DecipheredString, Len(ToDecode$), ?Key, 256, ?Init)
Output$ = PeekS(*DecipheredString)
EndIf
While Right(Output$,1) = Chr(10)
Output$ = Left(Output$,Len(Output$)-1)
Wend
ProcedureReturn Output$
EndProcedure
Debug EnAES("kleiner Text")
Debug DeAES(EnAES("kleiner Text"))
DataSection
Key:
Data.b $06, $a9, $21, $40, $36, $b8, $a1, $5b, $51, $2e, $03, $d5, $34, $12, $00, $06
Init:
Data.b $3d, $af, $ba, $42, $9d, $9e, $b4, $30, $b4, $22, $da, $80, $2c, $9f, $ac, $41
EndDataSection
Liegt vieleicht an meinem fehlenden Verständniss für die Funktionsweise von AES.
Ich hab schon ein bischen was nachgeprüft und in der Prozedur "DeAES" entspricht der String in "ToDecode$" dem selben wie "AESCode$" in der Prozedur "EnAES" also warum wird beim Decodieren im 1. Code der richtige String zurückgegeben, beim 2. allerdings nicht?