2025年5月17日 星期六 乙巳(蛇)年 二月十九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

【Agorithm】一次一密加密解密算法

时间:03-25来源:作者:点击数:71
  • #include<iostream>
  • #include<cstdio>
  • #include<cstdlib>
  • #include<ctime>
  • #include<cmath>
  • #include<cstring>
  • #include<string>
  • #include<windows.h>
  • #define MAX 100
  • using namespace std;
  • char key[MAX];
  • int len;
  • char *bitcode(char *str){
  • char *wen;
  • if((wen = (char*)malloc(len+1))==NULL){
  • cout<<"申请内存失败!"<<endl;
  • exit(1);
  • }
  • for(int i=0; i<len; i++){
  • wen[i] = str[i]^key[i];
  • }
  • wen[len] = '\0';
  • return wen;
  • }
  • int main(){
  • char str[MAX];
  • char *miwen, *mingwen;
  • char again;
  • srand(time(NULL));
  • cout<<"\t\t\t\t一次一密加密算法演示!\n\n";
  • s1:
  • cout<<"请输入需要加密的明文字符串:";
  • fflush(stdin);
  • gets(str);
  • len = strlen(str);
  • for(int i=0; i<len; i++){
  • key[i] = rand()%10+'0';
  • }
  • cout<<"此次加密的密钥序列为:";
  • for(int i=0; i<len; i++){
  • cout<<key[i];
  • }
  • cout<<endl;
  • miwen = bitcode(str);
  • cout<<"加密前的明文为:";
  • cout<<str<<endl;
  • cout<<"加密后的密文为:"<<miwen<<endl;
  • mingwen = bitcode(miwen);
  • cout<<"解密后的明文为:"<<mingwen<<endl;
  • cout<<endl;
  • s2:
  • cout<<"继续执行 (Y/N)?";
  • fflush(stdin);
  • cin>>again;
  • if(again =='y'|| again =='Y'){
  • goto s1;
  • }
  • else if(again == 'n' || again == 'N'){
  • cout<<"演示结束!"<<endl;
  • return 0;
  • }
  • else{
  • cout<<"输入错误请重新输入!"<<endl;
  • goto s2;
  • }
  • system("pause");
  • }

以下是运行结果:

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门