Ich habe diese Methoden in Objective-C. Sie sind nur Prüfsumme und einige NSData
Checksum und XOR in Swift
- (void)XOR:(NSMutableData *)inputData withKey:(NSData *)key
{
unsigned char* inputByteData = (unsigned char*)[inputData mutableBytes];
unsigned char* keyByteData = (unsigned char*)[key bytes];
for (int i = 0; i < [inputData length]; i++)
{
inputByteData[i] = inputByteData[i]^keyByteData[i % [key length]];
}
}
- (Byte)checkSum:(NSMutableData *)data withLength:(Byte)dataLength
{
Byte * dataByte = (Byte *)malloc(dataLength);
memcpy(dataByte, [data bytes], dataLength);
Byte result = 0;
int count = 0;
while (dataLength>0) {
result += dataByte[count];
dataLength--;
count++;
};
result = result&0xff;
return result&0xff;
}
jedoch XOR, ich bin nicht vertraut mit Bitweise Operatoren, vor allem in Swift, mit diesen UnsafeMutablePointer<Void>
... Dinge.
Kann mir jemand helfen, dies zu konvertieren? (Grundsätzlich brauche ich Prüfsumme und XOR-Funktionen)
Noch ein paar Dinge, sollten sie in NSData/NSMutableData
Erweiterung eingefügt werden?
Vielen Dank.
Es ist nicht notwendig, 'unsafeBitCast' zu verwenden. Zum Beispiel: 'let k = UnsafeBufferPointer (Start: UnsafePointer (key.bytes), count: key.length)'. –
@MartinR Danke für gute Informationen. Mein Code wurde besser. – findall
Danke. Ich werde es testen und Ihre Antwort später als akzeptiert markieren;) –