⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doublejm.cpp

📁 计算机安全的 多种密码算法演示
💻 CPP
字号:
// DOUBLE.cpp: implementation of the DOUBLE class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DOUBLEJM.h"
#include<string.h>
#include<stdio.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

DOUBLEJM::DOUBLEJM()
{

}

DOUBLEJM::~DOUBLEJM()
{

}


char *DOUBLEJM::encode()
{  
char a[255]={'\0'},b[255]={'\0'},c[255]={'\0'},d[255]={'\0'};
 int i,n,m,k,h,p=65,q=97,u[52],v[52],r,e[255]={0};
f[0]='\0';
  for(i=0;i<52;i++)
     {
      if(p>90) p=65;
      u[i]=p++;
     }
 printf("\n");
 for(i=0;i<52;i++)
    {
      if(q>122) q=97;
     v[i]=q++;
    }

 n=strlen(B);
 m=strlen(A);
 for(i=0;i<=m;i++)
	 a[i]=A[i];
 for(i=0;i<=n;i++)
	 b[i]=B[i];
  
 k=m%n;
 h=m/n;
 for(i=0;i<h;i++)
    {
     strcat(c,b);
    }
 strncpy(d,b,k);
 strcat(c,d);
 for(i=0;i<m;i++)
    {
     for(r=0;r<=25;r++)
	{
	 if(u[r]==(int)c[i])
	    e[i]=r;
	 else if(v[r]==(int)c[i])
	    e[i]=r;
	}
    }
 for(i=0;i<m;i++)
    {
     if((int)a[i]<97)
	{
	 for(r=0;r<=25;r++)
	    {
	      if(u[r]==(int)a[i])
		{
		 f[i]=(char)u[r+e[i]];
	     f[i+1]='\0';
		  }
	      if(u[r]==(int)a[i])
		 break;
	    }
	}
     else
	{
	 for(r=0;r<=25;r++)
	    {
	       if(v[r]==(int)a[i])
		 {
		   f[i]=(char)v[r+e[i]];
		   f[i+1]='\0';
		   }
	       if(v[r]==(int)a[i])
		   break;
	    }
	}
   }
 for(i=0;i<=(int)strlen(f);i++)
	 M[i]=f[i];
 return f;
}



char *DOUBLEJM::decode()
{const int N=255;
 char a[N]={'\0'},b[N]={'\0'},c[N]={'\0'},d[N]={'\0'};
 int i,n,m,k,h,p=65,q=97,u[52],v[52],r,e[N]={0};
 f[0]='\0';
 for(i=0;i<52;i++)
     {
      if(p>90) p=65;
      u[i]=p++;
     }

 for(i=0;i<52;i++)
    {
      if(q>122) q=97;
     v[i]=q++;
    }
 n=strlen(B);
 m=strlen(M);
 
 for(i=0;i<=m;i++)
	 a[i]=M[i];
 
 for(i=0;i<=n;i++)
	 b[i]=B[i];
 
 
 k=m%n;
 h=m/n;
 for(i=0;i<h;i++)
    {
     strcat(c,b);
    }
 strncpy(d,b,k);
 strcat(c,d);
 for(i=0;i<m;i++)
    {
     for(r=0;r<=25;r++)
	{
	 if(u[r]==(int)c[i])
	    e[i]=r;
	 else if(v[r]==(int)c[i])
	    e[i]=r;
	}
    }
 for(i=0;i<m;i++)
    {
     if((int)a[i]<97)
	{
	 for(r=25;r<=51;r++)
	    {
	      if(u[r]==(int)a[i])
		{
		 f[i]=(char)u[r-e[i]];
		 f[i+1]='\0';
		  }
	      if(u[r]==(int)a[i])
		 break;
	    }
	}
     else
	{
	 for(r=25;r<=51;r++)
	    {
	       if(v[r]==(int)a[i])
		 {
		   f[i]=(char)v[r-e[i]];
		   f[i+1]='\0';
		   }
	       if(v[r]==(int)a[i])
		   break;
	    }
	}
   }
return f;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -