XOR 加密

作者: 学生陈希 | 来源:发表于2019-04-08 08:04 被阅读1次

原文地址

XOR运算

XOR运算,中文称为“异或运算”。

它的定义是:两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值是否不同。

对应的真值表如下:

输入
A B
输出
A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

XOR 应用

XOR 运算有一个很奇妙的特点:如果对一个值连续做两次 XOR,会返回这个值本身。

// 第一次 XOR
1010 ^ 1111 // 0101

// 第二次 XOR
0101 ^ 1111 // 1010

加密数据

iOS加密数据如下:

循环遍历数据中的每一个字节,每个字节对应的数据与加密key对应的值做异或运算,然后把异或后的数据与原数据做交换。

- (NSData *)obfuscate:(NSData *)data withKey:(NSString *)key
{
     NSMutableData *result = [data mutableCopy];

    char *dataPtr = (char *) [result mutableBytes];
    char *keyData = (char *) [[key dataUsingEncoding:NSUTF8StringEncoding] bytes];

    char *keyPtr = keyData;
    int keyIndex = 0;

    // For each character in data, xor with current value in key
    for (int x = 0; x < [data length]; x++) 
    {
        *dataPtr = *dataPtr ^ *keyPtr;
        dataPtr++;
        keyPtr++; 

        // If at end of key data, reset count and 
        // set key pointer back to start of key value
        if (keyIndex == [key length]) {
            keyIndex = 0;
            keyPtr = keyData;
        }
    }

    return result;
}

参考

相关文章

  • 2019-12-29 对称密码

    对称密码--用相同的密钥进行加密和解密 XOR XOR是加密与解密的基础,原文XOR密钥=密文,密文XOR密钥=原...

  • XOR 加密

    原文地址 XOR运算 XOR运算,中文称为“异或运算”。 它的定义是:两个值相同时,返回false,否则返回tru...

  • XOR 加密简介

    本文介绍一种简单高效、非常安全的加密方法:XOR 加密。 一、 XOR 运算 逻辑运算之中,除了 AND 和 OR...

  • XOR 加密算法

    本文介绍一种简单高效、非常安全的加密方法:XOR 加密 一 XOR 运算 逻辑运算之中,除了 AND 和 OR,还...

  • XOR 加密算法

    本文介绍一种简单高效、非常安全的加密方法:XOR 加密 一 XOR 运算 逻辑运算之中,除了 AND 和 OR,还...

  • ida python脚本gadget

    对IDA中加密的函数名进行重命名 nop替换 xor decode

  • 2019-06-13iOS开发本地资源文件的加密方案

    C 使用异或(xor)加密/解密文件 https://blog.csdn.net/fdipzone/article...

  • 《图解密码技术》读书笔记

    第3章 对称密码(共享密钥密码)--- 用相同的密钥进行加密和解密 XOR(异或) 是最基本的加密运算 DES 是...

  • iOS 异或加密(XOR)

    原文链接源码见文末 异或简介 异或,二元运算; 符号^; 口诀:相同为0,不相同为1; 举例10011101^10...

  • 异或在计算机领域的应用实例

    性质 · 交换律:a xor b = b*a · 结合律:a xor b xor c = a xor (b xor...

网友评论

    本文标题:XOR 加密

    本文链接:https://www.haomeiwen.com/subject/oipyiqtx.html