C#语言编写的程序,现在需要用C++来实现,我对这个简直是菜鸟,求求给位大侠了
答案:3 悬赏:30
解决时间 2021-02-11 12:18
- 提问者网友:夕夏残阳落幕
- 2021-02-10 13:01
C#语言编写的程序,现在需要用C++来实现,我对这个简直是菜鸟,求求给位大侠了
最佳答案
- 二级知识专家网友:猎杀温柔
- 2021-02-10 13:37
#include <stdio.h>
#include <string.h>
#include <math.h>
double logistic(double u, double x, int n) //Logistic映射方程,u和x是密钥
{
for (int i = 0; i < n; i++)
{
x = u * x * (1 - x);
printf("[%f]", x);
}
return x;
}
//混沌序列加密过程data数组代表接收和发送的数据包
char *Encrypt(char *data, double u, double x0, char *oEnStr)
{
double x = logistic(u, x0, 2);
int iLen = strlen(data);
if(oEnStr == NULL )
{
return NULL;
}
for (int i = 0; i < iLen; i++)
{
oEnStr[i] = (char)((((int)(x * 100000))%256)^(int)data[i]); //取x小数点后5位与明文序列进行异或来生成密钥
printf("%d^%d= %d ",((int)(x * 100000))%256, data[i], oEnStr[i]);
}
return oEnStr;
}
int main()
{
char *data="nifdsajk,fdsakjf";
double u = 1.02F;
double x0 = 1.028F;
char sEncStr[128];
memset(sEncStr, 0x00, sizeof(sEncStr));
Encrypt(data, u, x0, sEncStr);
printf("加密前:%s\n", data);
printf("加密后:%s\n", sEncStr);
return 0;
}
#include <string.h>
#include <math.h>
double logistic(double u, double x, int n) //Logistic映射方程,u和x是密钥
{
for (int i = 0; i < n; i++)
{
x = u * x * (1 - x);
printf("[%f]", x);
}
return x;
}
//混沌序列加密过程data数组代表接收和发送的数据包
char *Encrypt(char *data, double u, double x0, char *oEnStr)
{
double x = logistic(u, x0, 2);
int iLen = strlen(data);
if(oEnStr == NULL )
{
return NULL;
}
for (int i = 0; i < iLen; i++)
{
oEnStr[i] = (char)((((int)(x * 100000))%256)^(int)data[i]); //取x小数点后5位与明文序列进行异或来生成密钥
printf("%d^%d= %d ",((int)(x * 100000))%256, data[i], oEnStr[i]);
}
return oEnStr;
}
int main()
{
char *data="nifdsajk,fdsakjf";
double u = 1.02F;
double x0 = 1.028F;
char sEncStr[128];
memset(sEncStr, 0x00, sizeof(sEncStr));
Encrypt(data, u, x0, sEncStr);
printf("加密前:%s\n", data);
printf("加密后:%s\n", sEncStr);
return 0;
}
全部回答
- 1楼网友:承载所有颓废
- 2021-02-10 15:08
看不懂,支持你
- 2楼网友:樣嘚尐年
- 2021-02-10 14:37
你好!
虽然我不会但是我相信你能行!加油!!!
我的回答你还满意吗~~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯