㈠ 一个简单的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;
}