Moin,
ich konnte das Problem mit dem De-Padding reproduzieren. Ich habe in der Hektik meinen eigenen Pseudo-Code falsch umgesetzt
. Mit dieser Änderung Deines Codes sollte es OK sein
Delphi-Quellcode:
if form1.CheckBox1.Checked then
begin
pad := ord(Data[length(Data)]);
for index :=1 to pad do delete(Data,length(Data),1);
end;
Natürlich ist das trotzdem noch eine Schnell-Lösung. Ein robuster Code sollte auch noch checken, ob der eingegebene Text für die Entschlüsselung gültiges Base64 ist, ob die Ciphertext-Länge ein Vielfaches von 16 ist, etc.