als ik zo lees lijkt het op een routine om een string in base64 om te zetten, daarna de base64 resultaat om te draaien en er vervolgens 17 bij op te tellen.
ik zo alle byte cast verwijderen en vervolgens in de delphi code alleen de twee regels toevoegen die missen voor
byte[] bArr = new byte[length];
byte[] bArr2 = new byte[length];
oftewel
setlength(bArr,length);
setlength(bArr2,length);
waarbij length de lengte is van de base64 decoded string.
byte[] decode = Base64.decode(str, 0);
int length = decode.length;
in de delphi code is die code niet correct
lengthDecode := ByteLength(input);
decode := TEncoding.UTF8.GetBytes(input);
De oorspronkelijke code gebruikt de lengte van decode, wat logisch omdat er byte by byte (element) door decode heen wordt gelopen in de eerste loop
Bookmarks