关于用c语言编写加密器
来源:互联网 发布:淘宝差评有什么影响 编辑:程序博客网 时间:2024/05/17 09:12
关于用c语言编写加密器——John_chen
想想自己,也学习了一个学期的c语言了,所以我想做一个自己早就想做的小软件了,小小的私人加密器,当然不是我们书上教我们做的那个了,我们还是自己考虑算法和怎么逆向实现解密,当然我做的这个版本是一个基础版本,以后我会进一步的加强它的功能,比如说是什么解密时的输入的不便(这是我感觉这个程序中的最大的缺陷),而且我还是准备实现txt文本等文件的导入功能,这是很重要的,要不这个程序和书上一样,没太大的变化和实用性,实用性是编程最重要的。好了,不说废话了,对了,不是电脑系的也要学习c语言哦~~~可以看看,当是消遣咯~(*^__^*) 嘻嘻……
http://u.115.com/file/f7fdd1dd9d 源代码下载
个人加密器2.0.exe http://u.115.com/file/f77d052457 程序已更新到2.0
首先,我们要考虑怎么来实现这个程序的大概思路。恩,我们是要有两个主要功能的,就是加密和解密,怎么来区别呢?我想了两种方法:
1. 可以通过vc++的编译器获得程序启动时候的参数,这好像有点深奥,但是你如果去Google上面查查资料也就不怎么难了。这种方法适用于有一个主程序调用时用,这里我就不用了~~~
2. 可以通过输入参数来搞定,就是像这样:
这样我们就可以控制两种不同的模式了,O(∩_∩)O~
然后我们来想想怎么实现加解密。而我自己设计的加密方式是通过密码来加密,这是我想到的比较保险的,通过输入密码在经过一些运算得到我们加密的结果。在运算的时候我们可以加入自己喜欢的一些数字来进行计算,这是我们的个人加密器吗,O(∩_∩)O~。解密就是这样的啦,我们通过输入加密后的字符后的字符,然后输入密码在进行字符的解密。主要的思路就是这样了,我先发代码:(这里我用的是visual studio 2008编译的,也就是vc++2008编译器编译的,其他的编译器可能还是点区别,但是大家其实只是要把申明语句改动一下就好了,这里我没用什么vc++的技术,只要改成
#include <stdio.h>,再把int_tmain(int argc,_tchar*argv[])改成void main()即可
#include "stdafx.h" //改成#include <stdio.h>
#include "iso646.h"//删除
int ret[100];
int _tmain(int argc, _TCHAR* argv[])//改成void main()
{ char put[100];
int mima=10;
int choise;
int i=0;
long c=0;
long put2[100];
int calculate_1(char protect[100],long password);
void calculate_2(long result[100],long password);
int number;//以上都是声明语句
printf("输入你想选择的模式!/n1为加密字符,为解密字符!!!/n");
scanf("%d",&choise);//选择语句
if(choise==1)//判断语句,看看是不是加密模式
{ printf("输入你需加密的的字符串!/n");//输入语句,输入你要加密的字符语句。注意,暂时不
//支持符号,到时候可以直接导入txt文本等文件
scanf("%s",put);
printf("输入你想要的密码,请小于4位数。"); //密码输入
scanf("%d",&mima);
number=calculate_1(put,mima);
for(choise=0;choise<number;choise++)
printf(" %d",ret[choise]);
}
else if (choise==2) //解密文件段
{printf("请输入字符长度!!/n");
scanf("%d",&i);
for(choise=0;choise<i;choise++)
{ printf("请输入加密数字,输入一个数按一次回车,-_-|||这个功能没做的太好/n");
scanf("%d",&c);
put2[choise]=c;
}
put2[i]='/0';
printf("请输入解密密码!!/n");
scanf("%d",&mima);
calculate_2(put2,mima);
}
Else //为人性化设计的容错语句
printf("你输入的数值是%d ,不属于本程序的控制范围!/n",choise);
Sleep(INFINITE); //1.1版加入的人性化设计
return 0;
}
int calculate_1(char protect[100],long password) //子函数1----加密
{ int num=41;
int num2=32;
int char1;
int i=0;
for(i=0;protect[i]!='/0'&&protect[i]!=0;i++)
{ char1=protect[i];
char1=char1^num;
char1=char1+32;
char1=char1*password ; //以上是加密计算,我数学不大好,下次再仔细考虑看看算法
ret[i]=char1; //存到数组中
}
return i; //这里我用的是返回后输出,也可以直接在子函数输出
}
void calculate_2(long result[100],long password) //子函数2---解密
{ int num=41;
int num2=32;
int char1;
int i=0;
for(i=0;result[i]!='/0'&&result[i]!=0;i++)
{ char1=result[i];
char1=char1/password;
char1=char1-32;
char1=char1^num; //以上是解密的逆运算
printf("%c",char1); //这里我就直接输出了
}
}
这个程序当时我想应该不会太难编成功,但是实际中我还是高了不少的时间的,就是有些地方的实现还是有些麻烦,所以我也想好好改进一下这个程序,加入几个实用的功能,我也会更新程序,写一些后续的文章,至于下载源代码,和源程序请到我的网盘中下载(在上面),最后贴两张效果图,(*^__^*) 嘻嘻……
对了,程序有什么地方有问题,希望大家留一下言,谢谢~~~
- 关于用c语言编写加密器
- C语言编写base64加密程序
- 关于C语言加密的算法
- 关于c语言头文件的编写
- 用c语言编写俄罗斯方块
- 用C语言编写通讯录
- 用c语言编写游戏
- 关于C语言多文件编写的一点小小总结
- 关于C语言多文件编写的一点小小总结
- 关于C语言多文件编写的一点小小总结
- 关于Android NDK开发--编写C语言那些事
- mac下用c语言md5加密
- 用 C 语言编写一个简单的垃圾回收器
- 用 C 语言编写一个简单的垃圾回收器
- 用 C 语言编写一个简单的垃圾回收器
- 用 C 语言编写一个简单的垃圾回收器
- 用 C 语言编写一个简单的垃圾回收器
- 用 C 语言编写一个简单的垃圾回收器
- 近几日 练功成果
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- 于/etc/security/limits的中文解释
- 如何生成Detours.lib——Detours的使用准备
- 管理专业学生必懂的部分知识
- 关于用c语言编写加密器
- 错误602:未能在sysindexes中找到数据库id 7中对象id 1的索引id 1 对应的行.
- Detours API HOOK快速入门
- memcpy函数——来自百度
- 期待Visual Studio2010
- 概要设计文档要求
- asp.net 怎样对label进行绑定
- 2. Hello,kernel模块实例
- 转《浅谈数据库设计技巧》