标题:关于用 vc 实现数据加密的问题?
只看楼主
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:20 
程序代码:
/*
<span style="color: #008000; text-decoration: underline;">https://bbs.bccn.net/thread-438429-1-1.html[/color]

将数据加密的一种简单办法是将一个字符信息与一个秘钥进行异或运算,可以得到加密信息。要将信息解码,只要将加密
后的信息再次加密,就可得到原始信息。编写函数Encrpt实现上述功能,并在main函数中验证。

函数原型:
unsigned char Encrypt (unsigned char cKey, unsigned char cCode);

其中cKey为秘钥,cCode为待加密的信息,函数返回加密结果! */

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <conio.h>

const unsigned char cKey = 'k';         // 使用的密钥

unsigned char Encrypt (unsigned char cKey, unsigned char cCode);

int main(void)
{
    unsigned char cString[] = "Hello, Yhyc!";
    int index;

    // 加密并输出结果
    for (index = 0; cString[index] != '\0'; ++index)
    {
        cString[index] = Encrypt(cKey, cString[index]);
    }
    printf_s("The encrypt string is: %s\n", cString);

    // 解密并输出结果
    for (index = 0; cString[index] != '\0'; ++index)
    {
        cString[index] = Encrypt(cKey, cString[index]);
    }
    printf_s("The encode string is: %s\n", cString);

    _getch();
    return EXIT_SUCCESS;
}

unsigned char Encrypt(unsigned char cKey, unsigned char cCode)
{
    // 根据要求将两个字符进行异或运算,返回其结果
    return cKey ^ cCode;
}

授人以渔,不授人以鱼。
2014-11-12 16:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你看到没有?加密和解密的代码是完全一样的。这就是加解密中密钥的用途,题目无非是让你明白这种原理,当然实际的加解密没有这么简单,但是要求加密和解密使用同一个密钥,是原则。

授人以渔,不授人以鱼。
2014-11-12 16:50
Yhyc
Rank: 2
等 级:论坛游民
帖 子:25
专家分:33
注 册:2014-11-10
得分:0 
其实对于上面的内个题,我是一团蒙!完全不懂!即便提示说的很清楚!
2014-11-12 19:00
Yhyc
Rank: 2
等 级:论坛游民
帖 子:25
专家分:33
注 册:2014-11-10
得分:0 
谢谢版主的代码!我会用心钻研!!!!!
2014-11-12 19:05
Yhyc
Rank: 2
等 级:论坛游民
帖 子:25
专家分:33
注 册:2014-11-10
得分:0 
唉!虽然看了代码!可是还是,,,,,算了!我放弃了!唉
2014-11-13 13:01
Yhyc
Rank: 2
等 级:论坛游民
帖 子:25
专家分:33
注 册:2014-11-10
得分:0 
回复 12 楼 TonyDeng
我明白了!谢谢!非常你的帮助!
2014-11-15 12:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
看了几天总算看明白了?

授人以渔,不授人以鱼。
2014-11-16 10:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438429-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.591867 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved