本文目录一览:
用C语言乘法加密怎么解密?(对文本文件内容乘法加密的。怎么解密?比如加密钥匙为K=2。原内容X2.)
给你一个加密算法 我写的 用异或算法处理文本类的文档
#includestdio.h
#includeconio.h
#includestdlib.h
#includetime.h
jiemi()
{
int k,l;
char FN[40],FS[40];
char ch,mima[40],x;
FILE *f1,*f2;
printf("输入要解密的文件夹名称:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路径有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入您要解密到的文件夹名称:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的输入有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入密码:");
scanf("%s",mima);
l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF)
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("解密成功,请在该软件目录找到您解密的文件。\n");
getch();
}
jiami()
{
int k,l;
char FN[20],FS[20];
char ch,mima[40],x;
FILE *f1,*f2;
printf("输入要打开的文件夹名称:");
scanf("%s",FN);
if((f1=fopen(FN,"r"))==NULL)
{
printf("您的路径有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入要保存的文件夹名称:");
scanf("%s",FS);
if((f2=fopen(FS,"w"))==NULL)
{
printf("您的输入有误,系统将不能完成任务,请重新进入。");
getch();
exit(1);
}
printf("输入密码:");
scanf("%s",mima);
l=strlen(mima);
k=0;
ch=fgetc(f1);
while(ch!=EOF) //文件没有到底就继续 ,EOF文件的底部
{
k=k%l;
fputc(ch^mima[k],f2);
ch=fgetc(f1);
k++;
}
fclose(f1);
fclose(f2);
printf("加密成功,请在该软件目录找到您加密的文件。\n");
getch();
}
main()
{
char y;
while(1)
{
printf("说明:欢迎使用文件加密程序,该程序可以将txt文档加密为为不可读文件,解密后返回原状态\n\n");
printf("小提示:输入文件名字的时候请使用字母,数字或下划线。\n并且请加上(文件名).txt的后缀,要加密的文件请放在和程序文件同目录下\n\n");
printf(" ******菜单*******\n");
printf(" * 1.加密 *\n");
printf(" * 2.解密 *\n");
printf(" * 0.退出 *\n");
printf(" *****************\n");
printf(" 请输入要执行的命令:\n");
y=getch();
switch(y)
{
case '1': jiami();system("cls");break;
case '2': jiemi();system("cls");break;
case '0': exit(0);
}
}
}
乘法口诀表,C语言
1、此题比较简单我们用两个for循环即可实现。编程时先要理清思路,然后就水到聚成了。
2、源代码如下:
#include stdio.h
int main(void)
{
int i ;
int j ;
printf("下面输出乘法口诀表:\n\n");
for(i = 1;i = 9;i++)
{
for(j = 1;j = i;j++)
{
printf("%2d * %2d = %2d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
3、输出结果如下:
4、总结:
本程序比较简单所以没有定义函数了,不过读者们要养成模块化编程的好习惯。该程序不管在输入输出的对齐还是代码的注释都是比较注意的。读者编写代码时尽量这样。
乘法在c语言中怎么表示?比如加法是add
估计你的意思是说C语言编译成汇编语言之后乘法怎么表示吧,因为在汇编中加法确实是用ADD表示的,下面给你运算符表:
ADD
加法.
ADC
带进位加法.
INC
加
1.
AAA
加法的ASCII码调整.
DAA
加法的十进制调整.
SUB
减法.
SBB
带借位减法.
DEC
减
1.
NEC
求反(以
减之).
CMP
比较.(两操作数作减法,仅修改标志位,不回送结果).
AAS
减法的ASCII码调整.
DAS
减法的十进制调整.
MUL
无符号乘法.
IMUL
整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
AAM
乘法的ASCII码调整.
DIV
无符号除法.
IDIV
整数除法.
以上两条,结果回送:
商回送AL,余数回送AH,
(字节运算);
或
商回送AX,余数回送DX,
(字运算).
AAD
除法的ASCII码调整.
CBW
字节转换为字.
(把AL中字节的符号扩展到AH中去)
CWD
字转换为双字.
(把AX中的字的符号扩展到DX中去)
CWDE
字转换为双字.
(把AX中的字符号扩展到EAX中去)
CDQ
双字扩展.
(把EAX中的字的符号扩展到EDX中去)