zoukankan      html  css  js  c++  java
  • linux c最简单的加密程序

    最初的密码程序是在Hirst First c里面看到的,大概内容如下:
    对待加密的字符串的每一个字符和某个数值进行一次按位异或得到密文,再进行一次按位异或得到明文。

    补充知识:按位异或的结果是“同位得1,异位得0”。
    比如数值2和数值1进行按位异或的情况如下:
    2对应的二进制表示:10
    1对应的二进制表示:01
    2^1的结果最终表示:00

    这个时候再把2^1的结果和1进行按位异或
    01
    00
    10

    原文的加密程序如下:

    #include<stdio.h>
    
    //加密解密程序 
    void encrypt(char *message)
    {
        while (*message) {
            //对message的每一个字符和31进行按位异或
            *message = *message ^ 31;
            message++;
        }
    }
    
    int main()
    {
        char s[] = "Hello qizexi";
        
        //运行一次:进行加密
        encrypt(s);
        printf("加密:%s
    ", s);
        //再运行一次是解密
        encrypt(s);
        printf("解密:%s
    ", s);
        
        return 0;
    }
    encrypt1.c

    既然可以和某个数值进行按位异或进行加密,那么是否可以和某个字符串进行按位异或呢,答案是可以。
    原理如下:待加密的密文的每一个字符和一个密匙(任意字符串) 的每一个字符分别进行一次按位异或进行加密解密即可。
    最终按密匙加密的程序如下:

    #include<stdlib.h>
    #include<string.h>
    #include<stdio.h>
    
    //加密解密程序 
    void encrypt(char *message, const char *key)
    {
        int i;
        int len = strlen(key);
        while (*message) {
            //对message的每一个字符和31进行按位异或
            for (i = 0; i < len; i++) {
                *message = *message ^ (int)key[i];
            }
            message++;
        }
    }
    
    int main()
    {
        //密文 
        char s[] = "Hello qizexi";
        //密匙 
        char *key = "qizexi@163.com";
        
        //运行一次:进行加密 
        encrypt(s, key);
        printf("加密:%s
    ", s);
        //再运行:进行解密 
        encrypt(s, key);
        printf("解密:%s
    ", s);
        
        return 0;
    } 
    encrypt2.c

    怎么样是不是粉简单,感觉在你的项目中引入这个程序吧。 

  • 相关阅读:
    3.redis认证
    2.redis-help使用,基本命令
    安卓使用merge标签和include优化UI布局
    安卓数据存储之ContentProvider
    安卓数据存储之SQLLite
    安卓数据存储之SharePreference
    安卓数据存储之sdcard存储
    java解析json之gjson和fastjson
    Android Volley完全解析(一),初识Volley的基本用法
    使用Pull解析Xml文件
  • 原文地址:https://www.cnblogs.com/qizexi/p/4677165.html
Copyright © 2011-2022 走看看