置換密碼c語言
A. 在c語言中怎麼比較字母的大小
你不是在做密碼學實驗? 列置換密碼就要做這些工作,呵呵。
如果慧做你只需要把這些字母排好序那太斗碧祥簡單了,直接冒泡排序就行了,冒泡排序在數組數目小於50 的時候效率是最高的。
char ch[]="dheng"
for(i=0;i<strlen(dheng)-1;i++)
{
for(j=0;j<i;j++)
{
if(ch[i]>ch[j+1])
{
t=ch[j];
ch[j]=ch[j+1];
ch[j+1]=t;
}
}
}
這里字母是asc碼其實就是數組 a的asc碼是97 b 是98 依此類推 所以 字母實際上空搏就是數組 ,按照數組的排序方法就ok。
B. 如何用C語言做出修改密碼的程序
1、用一個字元數組來存密碼再用一個字元數組接收你的輸入,然後用strcmp來比較,如果返回0則密碼是正確的2、常式:
#include "stdio.h"
#include "string.h"
int main()
{
char mima[100]="YuanShi888";
char input[100]={0};
printf("請輸入密碼:");
gets(input);
if(strcmp(mima,input)==0)
printf("恭喜你,密碼正確!\n");
else
printf("對不起,密碼輸入錯誤!\n");
}
C. 寫一個用c語言轉換密碼的程序
#include<stdio.h>
#include<string.h>
voidmain()
{
inti,n;charstr[21];
gets(str);n=strlen(str);
if(n==0)printf("error");
for(i=0;i<n;i++)
if((str[i]<'a'塵好||str[i]>'z')&&(str[i]<'A'||str[i]>'Z'))
printf("error");
else
{
for(i=0;i<n;i++)
{
if((str[i]>='x'&&str[i]<='z')||(str[i]>派晌鉛='X'&&str[i]<='Z'))
str[i]-=22;
elsestr[i]+=4;
printf("%c"謹亮,str[i]);
}
}
}
D. C語言簡單密碼破解(密文轉明文)
調了半天,樓主真是太粗心了!middle1[]應該這樣聲明:
char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
最後輸出start的時候要注意控制長度,改個for循環就好了!
#include<stdio.h>
#include<string.h>
int main(void)
{
int i,j,length,n;
char temp;
char middle2[27];
char start[201],finish[201];
char middle1[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
gets(middle2);
gets(finish);
scanf("%d",&n);
length=strlen(finish);
for(i=0;i<25;i++)
{
for(j=i+1;j<26;j++)
{
if(middle2[i]>middle2[j])
{
temp=middle2[i];
middle2[i]=middle2[j];
middle2[j]=temp;
temp=middle1[i];
middle1[i]=middle1[j];
middle1[j]=temp;
}
}
}
for(i=1;i<=n;i++)
{
for(j=0;j<length;j++)
{
if(finish[j]==' ')
{
start[j]=' ';
}
else
{
start[j]=middle1[finish[j]-'A'];
}
}
}
for( i = 0;i < length;++i)
printf("%c",start[i]);
printf("\n");
return 0;
}
/*
ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/
E. 請問為什麼要CLR C進行 位清零 這個程序為什麼要用到循環移位指令
CLR C指令用於將CPU的C(進位)標志位清零,以便執行緊接著的操作不受上一次操作的影響。在某些操作中,比如減法運算和移位操作中,會改變C(進位)標志位的值,因此需要在下次操作前將其清零。
循環移纖搜位指令是一種可友豎碰以將一個二進制數左移好談或右移若干位的指令。在某些應用中,特別是涉及到二進制數據處理或加密等領域,循環移位指令非常有用。例如,在密碼學中,可以使用循環移位指令實現位移密碼和置換密碼等加密演算法。
具體到某個程序中為什麼要使用循環移位指令,需要看具體情況。通常情況下,使用循環移位指令可以簡化代碼、提高效率、壓縮數據等。對於某些嵌入式系統來說,由於資源有限,使用適當的演算法和指令可以有效地優化系統性能。
F. C語言VC++6.0實現一個置換加密
這個應該滿足要求:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
FILE *fi,*fo;
char ps[20],txt1[1024],txt2[1024];
int plen,ps1[20];
int i,j,k;
void main(){
printf("password? ");
scanf("%s",ps);
plen=strlen(ps);
printf("PASSWORD is %s in length of %d, separated into:\n",ps,plen);
for(i=0;i<plen;i++){ps1[i]=ps[i]-48;printf("%3d",ps1[i]);}
fi=fopen("d:\\datin.txt","ra");
if(fi==NULL)exit(111);
fscanf(fi,"%s\n",txt1);
fclose(fi);
printf("\n\n---TEXT in file d:\\datin.txt before encoding : ---\n%s\n",txt1);
fo=fopen("d:\\datout.txt","wa");
if(fo==NULL)exit(222);
for(j=0;j<strlen(txt1);j++){
for(i=0;i<plen;i++)fprintf(fo,"%c",txt1[ps1[i]-1+j]);
j+=plen-1;
}
fclose(fo);
fi=fopen("d:\\datout.txt","ra");
fscanf(fi,"%s\n",txt2);
fclose(fi);
printf("\n---TEXT in file d:\\datout.txt after encoding : ---\n%s",txt2);
printf("\n");
}
// contents in datin.txt:
//
G. 用C語言或者其他語言編寫替代密碼和置換密碼
給你,自己再稍微改造一下吧:
#include "stdio.h"
#include "conio.h"
main()
{
int k,i=0;
char a[100],b[100];
printf("qing shu ru ni de mi wen \n");
gets(a);
printf("qing shu ru mi shi \n");
scanf("%d",&k);
printf("\n");
do{
b[i]=(char)(a[i]+k);
if(b[i]>122){
b[i]=(char)(b[i]-26);
}
i++;
}while(a[i]!='\0');
puts(b);
getch();
}
H. 一個簡單的C語言:密碼轉換
char mycrypt ( char ch, int key )
{
if ( ch <= 'Z' && ch >= 'A' )
{
ch -= 'A';
ch += 26 + key;
ch = ch % 26;
ch += 'A';
}
else if ( ch <= 'z' && ch >= 'a' )
{
ch -= 'a';
ch += 26 + key;
ch = ch % 26;
ch += 'a';
}
return ch;
}
I. C語言編程 將四位數字分為一組進行加密,其中第一位和第三數字交換,第二位和第四位數字交換
1 3 交團蘆換 2 4交飢基換塌肢帶就是 12和34交換 前兩位換到後兩位
#include "stdio.h"
void main()
{
int a;
int b;
scanf("%d",&a);
b=a/100+a%100*100;
printf("%d",b);
}
J. 文本串加密和解密程序
加密解密函數及用法示例http://hi..com/ypxmaomao/blog/item/6361f5d6fb1e8e2606088b32.html