本文目錄一覽:
用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中去)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/289169.html