㈠ 一個簡單的c語言:密碼轉換
{
if(ch >= 'a' && ch <= 'z')
{
char cr = ch + key % 26;
if(cr > 'z')
{
return cr - 26;
}
if(cr < 'a')
{
return cr + 26;
}
}
if(ch >= 'A' && ch <= 'Z')
{
char cr = ch + key % 26;
if(cr > 'Z')
{
return cr - 26;
}
if(cr < 'A')
{
return cr + 26;
}
}
}
㈡ 用C語言編程密碼學的矩陣換位法
矩陣換位法,應該就是指兩個互為逆矩陣的矩陣吧;
假設矩陣 A 乘以矩陣 B 得出一個單位矩陣,那麼這兩個矩陣互為逆矩陣;
原理應該是這樣的;
假設你有明文 T 以及轉換矩陣 A,並且 T 通過 A 轉換出來的密文為 S;
那麼用密文 S 通過 A 的逆矩陣 B 轉換出來的內容,就是明文 T;
矩陣包含的信息量巨大,一般都是二維和三維矩陣就夠用了;
㈢ C語言VC++6.0實現一個置換加密
問個問題,
文件中如果保存以下內容:abcdef。
密鑰輸入:123,自動檢測變成213了,這個是固定變的嗎?輸入234,檢測變成324了???
㈣ 置換密碼用C語言怎麼編寫
不明白你的目的…替換密碼?哪裡的密碼?指跨進程保護進行內存讀寫嗎?
㈤ 如何用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語言實現密碼加密
unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}
intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}
㈦ 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("\
");
return
0;
}
/*
ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/
㈧ 用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();
}
㈨ C語言寫一個線路加密法或叫換位加密演算法
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
constintMAXSIZE=100;
char*encrypt(char*essay){
inti,j,n,u,v,m,len=strlen(essay);
char*result;
m=n=(int)sqrt(len);
if(m*m<len)++n;
result=(char*)malloc(m*n*sizeof(char)+1);
for(i=0;i<m;++i){
for(j=0;j<n;++j){
u=n*i+j;
v=m*j+i;
if(u<len)result[v]=essay[u];
elseresult[v]='';
}
}
result[m*n]=0;
returnresult;
}
intmain(){
chars[MAXSIZE],*u;
printf("輸入明文: ");
fgets(s,MAXSIZE,stdin);
s[strlen(s)-1]=0;//去除尾部的
u=encrypt(s);
printf("密文是: %s ",u);
free(u);
return0;
}