單錶置換加解密

2021-06-26 15:24:53 字數 1496 閱讀 1740

/*

0.3版本

該版本整合了caesar和單錶置換。

修復了0.2版本的致命錯誤。

writed by wintersun 2014/10/27

*/#include#include#include#define size 500

char x[size],y[size];

int int_key;

char str_key[100];

char str_passtable[30];//單錶置換的密碼表。

int main()

int meau()

}void caesar_lock(char*x,char*y,int int_key)//加密函式

if(*x>='a'&&*x<='z')

*y=*x;

y++;

x++;

} *y='\0';

}void caesar_unlock(char*x,char*y,int int_key)//解密函式

if(*x>='a'&&*x<='z')

*y=*x;

y++;

x++;

} *y='\0';

}void displace_lock()

str_len--;

for(char a='a';a<='z';a++)//填充字母表。

str_key[++str_len]=a;

str_key[++str_len]='\0';

str_len++;

int len_table=0;

int flag=0;

str_passtable[0]=str_key[0];

for(int j=1;j='a'&&str_key[i]<='z')

str_key[i]+=32;

if(x[i]>='a'&&x[i]<='z')

x[i]+=32;

} str_len--;

for(char a='a';a<='z';a++)//填充字母表。

str_key[++str_len]=a;

str_key[++str_len]='\0';

str_len++;

int len_table=0;

int flag=0;

str_passtable[0]=str_key[0];

for(int j=1;jif(flag==0)

}//以上密碼表製作完成,密文對照明文輸出。

char unpass[27];

for(int i=0;i<26;i++)

unpass[i]=f(i);

//置換成解密表

int len_x=strlen(x);

for(int i=0;iy[i]=unpass[x[i]-'a'];

y[len_x]='\0';

}void press()//該函式用來等待使用者按鍵並清屏。

加解密方法

imports system imports system.security.cryptography imports system.text imports system.io public class encryptor private shared iv as byte private sha...

加解密簡介

加密技術,簽名技術的需要做到三防一確認。一防竊聽,二防篡改,三防抵賴,確認對方身份。在電子商務過程中,開始時必須確認對方身份,不然談了半天,發現網際網路那頭真是一條狗,就悲劇了。防竊聽是指,即便有人在網路傳輸過程中得到了資料,看到的也是亂七八糟,無法從中得知正常的資訊。舉個例子,談判前老總通過網路跟...

字元加解密

using system using system.security.cryptography using system.web.security using system.io using system.text using system.configuration namespace x.com...