iOS異或加密演算法

Eric君發表於2018-01-03

廢話不多說,直接上程式碼

/**
 *  異或加密演算法
 *
 *  @param sourceData 需要加密的位元組流
 *  @param key        加密的key
 *
 *  @return 加密後的位元組流
 */
- (NSData *)encodeData:(NSData *)sourceData withKey:(NSString *)key {
    NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];
    Byte *keyBytes = (Byte *)[keyData bytes];   //取關鍵字的Byte陣列, keyBytes一直指向頭部

    Byte *sourceDataPoint = (Byte *)[sourceData bytes];  //取需要加密的資料的Byte陣列
    
    for (long i = 0; i < [sourceData length]; i++) {
        sourceDataPoint[i] = sourceDataPoint[i] ^ keyBytes[(i % [keyData length])]; //然後按位進行異或運算
    }
    
    return sourceData;
}
複製程式碼

相關文章