c语言加密算法
#include<stdio.h>
#include<string.h>
#definePASSWORD3
intmain()
{
charc;
FILE*source=fopen("source.txt","r");//源解密时将该源文件换成加密后的文件
FILE*result=fopen("result.txt","w");//处理结果
while((c=fgetc(source))!=EOF)//加密
{
if(c>='a'&&c<='z')
c='a'+(c-'a'+PASSWORD)%26;
elseif(c>='A'&&c<='Z')
c='A'+(c-'A'+PASSWORD)%26;
fputc(c,result);
}
/*
while((c=fgetc(source))!=EOF)//解密解密时将加密部分注释掉
{
if(c>='a'&&c<='z')
c='a'+(c-'a'+26-PASSWORD)%26;
elseif(c>='A'&&c<='Z')
c='A'+(c-'A'+26-PASSWORD)%26;
fputc(c,result);
}
*/
close(source);
close(result);
system("pause");
return0;
}
这是之前写的,可以看看
‘贰’ C语言加密算法
#include<stdio.h>
intconstN=10;
//将方阵a[N][N]第row行循环左移m位
voidRowLeftn(chara[][N],intn,introw,intm){
inti,j,t;
if(row<0||row>n-1)return;
for(i=0;i<m;++i){
t=a[row][0];
for(j=0;j<n-1;++j)
a[row][j]=a[row][j+1];
a[row][n-1]=t;
}
}
//将方阵a[N][N]第col列循环上移m位
voidColUpn(chara[][N],intn,intcol,intm){
inti,j,t;
if(col<0||col>n-1)return;
for(i=0;i<m;++i){
t=a[0][col];
for(j=0;j<n-1;++j)
a[j][col]=a[j+1][col];
a[n-1][col]=t;
}
}
intmain(){
chartxt[N][N];
inta[N],b[N],i,j,n;
while(scanf("%d",&n)==1&&n>0){
fflush(stdin);
for(i=0;i<n;++i){
for(j=0;j<n;++j)
scanf("%c",&txt[i][j]);
}
for(i=0;i<n;++i){
for(j=0;j<n;++j)
printf("%c",txt[i][j]);
printf(" ");
}
for(i=0;i<n;++i)scanf("%d",&a[i]);
for(i=0;i<n;++i)scanf("%d",&b[i]);
for(i=0;i<n;++i)RowLeftn(txt,n,i,a[i]);
for(i=0;i<n;++i)ColUpn(txt,n,i,b[i]);
for(i=0;i<n;++i){
for(j=0;j<n;++j)
printf("%c",txt[i][j]);
}
printf(" ");
}
return0;
}
‘叁’ 求一个加密算法,有C语言例程给分
既然求简单,我帮你写了个加解密算法相同的。
#include "assert.h"
#include "stdlib.h"
#include "string.h"
char *Encode(char *sSrc)
{
assert(NULL != sSrc);
char *p = NULL;
int iSrcLen = strlen(sSrc);
p = (char *)malloc((iSrcLen + 1) * sizeof(char));
strcpy(p, sSrc);
p[iSrcLen] = '\0';
int i = 0;
while (i < iSrcLen)
{
if (p[i] >= '0' && p[i] <= '9')
{
p[i] += 5;
p[i] = '0' + (p[i] - '0') % 10;
}
++i;
}
return p;
}
// 测试代码
int main()
{
char *p = Encode("123");
printf("Encode:%s\n", p); // 加密结果678
char *q = Encode(p);
printf("Decode:%s\n", q); // 解密结果123
free(p);
free(q);
return 0;
}
‘肆’ 用C语言写Kaesar加密算法
void Kaesar(char *p)
{
int i = 0;
while( p[i] )
{
if(p[i] = 32)
{
printf("%d\t",3*27+5);
i ++;
}
else if(p[i] >= 'a' && p[i] <= 'z')
{
printf("%d\t",3*(p[i]-'a'+1)+5);
i ++;
}
else if(p[i] >= 'A' && p[i] <= 'Z')
{
printf("%d\t",3*(p[i]-'Z'+1)+5);
i ++;
}
else
i++;
}
}
随便写了下,未验证,传入的是字符串指针,密文C直接打印到屏幕了,看看能不能调通。主函数什么的自己填。
‘伍’ 用c语言设计一个简单地加密算,解密算法,并说明其中的原理
恰巧这两天刚看的一种思路,很简单的加密解密算法,我说一下吧。
算法原理很简单,假设你的原密码是A,用A与数B按位异或后得到C,C就是加密后的密码,用C再与数B按位异或后能得回A。即(A异或B)异或B=A。用C实现很简单的。
这就相当于,你用原密码A和特定数字B产生加密密码C,别人拿到这个加密的密码C,如果不知道特定的数字B,他是无法解密得到原密码A的。
对于密码是数字的情况可以用下面的代码:
#include <stdio.h>
#define BIRTHDAY 19880314
int main()
{
long a, b;
scanf("%ld", &a);
printf("原密码:%ld\n", a);
b = BIRTHDAY;
a ^= b;
printf("加密密码:%ld\n", a);
a ^= b; printf("解密密码:%ld\n", a);
return 0;
}
如果密码是字符串的话,最简单的加密算法就是对每个字符重新映射,只要加密解密双方共同遵守同一个映射规则就行啦。
‘陆’ 用C语言实现DES加密算法!
l iceEncryptText 文本加密解密
http://dl.icese.net/src.php?f=iceEncryptText.src.rar
‘柒’ C语言 加密算法
#include<stdio.h>
#include<string.h>
#defineMAX_LEN1024
#defineMAX_KEY_LEN10
/*key必须是1-9之间的数字*/
/*拥有K个字符的Key,包含且仅包含1-K*/
intCheckKey(char*key)
{
inti,check[MAX_KEY_LEN]={0};
intmax=strlen(key);
intkeyVal;
for(i=0;i<max;i++)
{
keyVal=key[i]-'0';
if(keyVal>max||keyVal<1)
return0;
if(check[keyVal]==1)
return0;
else
check[keyVal]=1;
}
return1;
}
intEncrypt(char*word,char*key,char*secretWord)
{
inti,start;
intnLenWord=strlen(word);
intnLenKey=strlen(key);
intindex[MAX_KEY_LEN];
if(nLenWord%nLenKey!=0)
{
printf("明文的位数不是密钥位数的整数倍! ");
return0;
}
for(i=0;i<nLenKey;i++)
{
index[i]=key[i]-'0'-1;
}
/*START关键代码*/
start=0;
while(start<nLenWord)
{
for(i=0;i<nLenKey;i++)
{
secretWord[start+i]=word[start+index[i]];
}
start+=nLenKey;
}
secretWord[nLenWord]='