美文网首页
简单异或加密

简单异或加密

作者: wyrover | 来源:发表于2017-03-01 17:35 被阅读60次

Dont’ use XOR encryption only when you encrypt data. It’s weak. Combine it with other methods/algorithms. You can for ex. xor a string and then encrypt it with AES 256.

Definitions and Includes

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
int XOR(WCHAR **dest, const WCHAR *src, int slen, const WCHAR *key, int klen);
XOR method

int XOR(WCHAR **dest, const WCHAR *src, int slen, const WCHAR *key, int klen){
    int kIndex = 0;
 
    *dest = (WCHAR*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, slen * sizeof(WCHAR));
    if (*dest == NULL) return 0;
 
    for (int i = 0; i < slen - 1; i++){
        *(*dest + i) = src[i] ^ key[kIndex++];
        if (kIndex == klen - 1) kIndex = 0;
    }
 
    *(*dest + (slen - 1)) = '\0';
 
    return slen;
}

Usage

int main(void){
    WCHAR *xored;
    const WCHAR plain[] = L"maldevel\0";
    const WCHAR xorkey[] = L"gt32fvbn678jkfdcvb34tgbn\0";
    int xoredChars = 0;
 
    wprintf(L"plain text: %s\n", plain);
    xoredChars = XOR(&xored, plain, wcslen(plain) + 1, xorkey, wcslen(xorkey) + 1);
 
    if (xoredChars > 0)
        wprintf(L"xor result: %s\n", xored);
 
    if (xored)HeapFree(GetProcessHeap(), 0, xored);
 
    return EXIT_SUCCESS;
}

相关文章

  • 简单异或加密

    Dont’ use XOR encryption only when you encrypt data. It’s...

  • 简单的异或加密

  • TS异或加密并输出Base64字符串

    在做游戏或应用的时候,一些本地数据为了安全需要加密。最简单的加密方式当然是异或加密了,但异或之后输出的是数据块,并...

  • java 对图片简单加密 ^异或

    import java.io.*; public class Helloworld { public static...

  • 汇编 进制练习

    加密:对一个数进行异或的结果再进行异或会得到最开始的数据。这就是加密的本质。秘钥是进行异或的数,原始数据是被异或的...

  • 异或加密解密

    异或,英文为exclusive OR,或缩写成xor异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符...

  • android异或加密

    异或加密 参考文档:https://www.cnblogs.com/whoislcj/p/5944917.html...

  • 对图片进行简单加密

    通过异或运算对文件进行简单加密 如果需要解密,只需将infile里面的图片路径修改成加密后的图片路径,output...

  • 常用代码

    异或运算加密 CRC8校验

  • iOS-异或加密

    iOS-异或加密 原理 对待加密数据的每个二进制字节,做异或操作(就是把原来的0变成1,1变成0),从而达到加密的...

网友评论

      本文标题:简单异或加密

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