當前位置:首頁 » 編程語言 » idea如何用c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

idea如何用c語言

發布時間: 2023-07-06 14:59:01

⑴ IDEA加密演算法的c語言實現

1、數據加密的基本過程就是對原來為明文的文件或數據按某種演算法進行處理,使其成為不可讀的一段代碼,通常稱為「密文」,使其只能在輸入相應的密鑰之後才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。

2、常見加密演算法
DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合;
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高;
RC2和 RC4:用變長密鑰對大量數據進行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)國際數據加密演算法:使用 128 位密鑰提供非常強的安全性;
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高,目前 AES 標準的一個實現是 Rijndael 演算法;
BLOWFISH,它使用變長的密鑰,長度可達448位,運行速度很快;
其它演算法,如ElGamal、Deffie-Hellman、新型橢圓曲線演算法ECC等。
比如說,MD5,你在一些比較正式而嚴格的網站下的東西一般都會有MD5值給出,如安全焦點的軟體工具,每個都有MD5。

3、常式:

#include<stdio.h>
#include<process.h>
#include<conio.h>
#include<stdlib.h>
#definemaxim65537
#definefuyi65536
#defineone65536
#defineround8
unsignedintinv(unsignedintxin);
unsignedintmul(unsignedinta,unsignedintb);
voidcip(unsignedintIN[4],unsignedintOUT[4],unsignedintZ[7][10]);
voidkey(unsignedintuskey[9],unsignedintZ[7][10]);
voidde_key(unsignedintZ[7][10],unsignedintDK[7][10]);
voidmain()
{
inti,j,k,x;
unsignedintZ[7][10],DK[7][10],XX[5],TT[5],YY[5];
unsignedintuskey[9];
FILE*fpout,*fpin;
printf(" InputKey");
for(i=1;i<=8;i++)
scanf("%6u",&uskey[i]);
for(i=0;i<9;i++)
uskey[i]=100+i*3;
key(uskey,Z);/*產生加密子密鑰*/
de_key(Z,DK);/*計算解密子密鑰*/
if((fpin=fopen("ekey.txt","w"))==NULL)
{
printf("cannotopenfile!");
exit(EXIT_FAILURE);
}
for(i=0;i<7;i++)
{
for(j=0;j<10;j++)
fprintf(fpin,"%6u",Z[i][j]);
fprintf(fpin," ");
}
fclose(fpin);

/*XX[1..5]中為明文*/
for(i=0;i<4;i++)XX[i]=2*i+101;
clrscr();
printf("Mingwen%6u%6u%6u%6u ",XX[0],XX[1],XX[2],XX[3]);
if((fpin=(fopen("ideaming.txt","w")))==NULL)
{printf("cannotopenfile!");
exit(EXIT_FAILURE);
}
fprintf(fpin,"%6u,%6u,%6u,%6u ",XX[0],XX[1],XX[2],XX[3]);
fclose(fpin);
for(i=1;i<=30000;i++)
cip(XX,YY,Z);/*用密鑰Z加密XX中的明文並存在YY中*/
printf(" Mingwen%6u%6u%6u%6u ",YY[0],YY[1],YY[2],YY[3]);
if((fpin=fopen("ideamiwn.txt","w"))==NULL)
{
printf("cannotopenfile!");
exit(EXIT_FAILURE);
}
fprintf(fpout,"%6u%6u%6u%6u ",YY[0],YY[1],YY[2],YY[3]);
{
printf("cannotopenfile!");
exit(EXIT_FAILURE);
}
fprintf(fpout,"%6u%6u%6u%6u ",YY[0],YY[1],YY[2],YY[3]);
fclose(fpout);
for(i=1;i<=30000;i++)
cip(YY,TT,DK);/*encipherYYtoTTwithKeyDK*/
printf(" JieMi%6u%6u%6u%6u ",TT[0],TT[1],TT[2],TT[3]);
if((fpout=fopen("dideaout.txt","w"))==NULL)
{
printf("cannotopenfile!");
exit(EXIT_FAILURE);
}
fprintf(fpout,"%6u%6u%6u%6u ",TT[0],TT[1],TT[2],TT[3]);
fclose(fpout);
}
/*此函數執行IDEA演算法中的加密過程*/

voidcip(unsignedintIN[4],unsignedintOUT[4],unsignedintZ[7][10])
{
unsignedintr,x1,x2,x3,x4,kk,t1,t2,a;
x1=IN[0];x2=IN[1];x3=IN[2];x4=IN[3];
for(r=1;r<=8;r++)
{
/*對64位的塊進行分組運算*/
x1=mul(x1,Z[1][r]);x4=mul(x4,Z[4][r]);
x2=x2+Z[2][r]&one;x3=(x3+Z[3][r])&one;
/*MA結構的函數*/
kk=mul(Z[5][r],(x1^x3));
t1=mul(Z[6][r],(kk+(x2^x4))&one;
/*隨機變換PI*/
x1=x1^t1;x4=x4^t2;a=x2^t2;x2=x3^t1;x3=a;
}
/*輸出轉換*/
OUT[0]=mul(x1,Z[1][round+1]);
OUT[3]=mul(x4,Z[1][round+1]);
OUT[1]=(x3+Z[2][round+1])&one;
OUT[2]=(x2+Z[3][round+1])&one;
}

/*用高低演算法上實現乘法運算*/
unsignedintmul(unsignedinta,unsignedintb)
{
longintp;
longunsignedq;
if(a==0)p=maxim-b;
elseif(b==0)p=maxim-a;
else
{
q=(unsignedlong)a*(unsignedlong)b;
p=(q&one)-(q>>16);
if(p<=0)p=p+maxim;
{
return(unsigned)(p&one);
}

/*通過Euclideangcd演算法計算xin的倒數*/
unsignedintinv(unsignedintxin)
{
longn1,n2,q,r,b1,b2,t;
if(xin==0)
b2=0;
else
{n1=maxim;n2=xin;b2=1;b1=0;
do{
r=(n1%n2);q=(n1-r)/n2;
if(r==0)
if(b2<0)b2=maxim+b2;
else
{n1=n2;n2=r;
t=b2;
b2=b1-q*b2;b1=t;
}
}while(r!=0);
}
return(unsignedlongint)b2;
}
/*產生加密子密鑰Z*/
voidkey(unsignedintuskey[9],unsignedintZ[7][10])
{
unsignedintS[54];
inti,j,r;
for(i=1;i<9;i++)
S[i-1]=uskey[i];
/*shifts*/
for(i=8;i<54;i++)
{
if(i+2)%8==0)/*對於S[14],S[22],...進行計算*/
S[i]=((S[i-7]<<0)^(S[i-14]>>7)&one;
elseif((i+1)%8==0)/*對於S[15],S[23],...進行計算*/
S[i]=((S[i-15]<<9)^(S[i-14]>>7)&one;
else
S[i]=((S[i-7]<<9)^(S[i-6]>>7)&one;
}
/*取得子密鑰*/
for(r=1;r<=round+1;r++)
for(j=1;j<7;j++)
Z[j][r]=S[6*(r-1)+j-1];
}

/*計算解子密鑰DK*/
voidde_key(unsignedintZ[7][10],unsignedintDK[7][10])
{
intj;
for(j=1;j<=round+1;j++)
{DK[1][round-j+2]=inv(Z[1][j]);
DK[4][round-j+2]=inv(Z[4][j]);
if(i==1|j==round+1)
{
DK[2][round-j+2]=(fuyi-Z[2][j])&one;
DK[3][round-j+2]=(fuyi-Z[3][j])&one;
}
else
{
DK[2][round-j+2]=inv(Z[3][j]);
DK[3][round-j+2]=inv(Z[2][j]);
}
}
for(j=1;j<=round+1;j++)
{
DK[5][round-j+2]=inv(Z[5][j]);
DK[6][round-j+2]=inv(Z[6][j]);
}

}

⑵ c語言使用什麼軟體,該如何使用

C語言作為一門古老的編程語言,應用范圍非常廣,至於編程的軟體的話,其實就非常多了,下面我簡單介紹幾個不錯的C語言編程軟體,感興趣的朋友可以自己嘗試一下:

Dev-C++

這個是Windows環境下一個輕量級、免費的C/C++集成開發環境,自帶有TDM-GCC編譯器、GDB調試器,可以直接編譯運行C語言程序,輕快靈活,功能簡潔,支持代碼高顯亮,沒有自動語法提示和自動補全功能,對於初學者來說,非常鍛煉人,純手工編寫代碼,更能打好基礎:

VC++6.0

這個軟體的功能和Dev C++差不多,也是Windows環境下一個非常不錯的C/C++開發環境,在早期的學習中,經常會用到這個軟體,許多學校機房中都使用這個軟體教學,可以直接編輯運行C語言程序,功能比較簡單,沒有任何提示功能,都是手寫代碼,現在來說,使用不多了,但對於初學者來說,也是一個不錯的選擇:

CodeBlocks

相比較前面2個軟體,CodeBlocks的功能強大一些,開源、免費、跨平台,小巧靈活,支持代碼高亮、語法檢查、自動補全等功能,除此之外,還提供了許多現成的工程模板,可以快速創建控制台應用、Qt應用等,使用起來非常方便,也是一個非常不錯的C語言編程軟體:

VS Code

這是微軟開源、免費、跨平台的一個代碼編輯器,插件眾多,生態環境良好,配置GCC編譯器後,也可以直接編輯運行C語言程序(本身支持的編程語言也非常多),支持智能補全、語法提示、Git等功能,輕便靈活,使用起來非常不錯,也很好學習和掌握:

VS 2017

這是一個專業的C/C++開發環境,也是個人和公司使用最多的IDE,項目管理、團隊協作來說非常方便,集成的環境比較多,Python、VB、C#等,這個軟體都能很好的兼容,自動補全、語法檢查和提示功能這個軟體都支持,整個軟體比較大,運行起來電腦可能會比較卡,而且功能比較復雜,初學者來說,需要一段時間才能適應和基本掌握,但的確是一個值得學習和使用的IDE環境:

Vim

這也是一個非常經典的C語言編程環境,只不過在Linux環境下比較常用,免費、跨平台,插件擴展比較豐富,輕巧靈活,功能簡潔,安裝GCC編譯器後,也可以直接編譯運行C語言程序,對於在Linux環境下開發C來說,是一個非常不錯的選擇:

目前,就分享這6個不錯的C語言編程軟體吧,有Windows的,也有Linux的,對於初學者來說,完全可以滿足日常開發和使用,當然,你也可以使用其他軟體,像IDEA、Eclipse(安裝插件)等,也可以,適合自己就行,網上也有相關資料可供參考,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言。

這個有好多,我先來說說我用過的有哪些?

我在Windows上一開始用的是 win-TC,這是一個新手軟體。

他有了界面,能夠使用滑鼠,具有語法高亮,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。

我給你看看它的樣子

我再來講一個: dev-C++

這個軟體也挺好的,是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高亮,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。

我來給你看看它的樣子

再來最有一個,他就是 VC++

微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索.

你自己考慮用哪個吧!

祝願你c語言學的越來越好!

C語言只是一門計算機編程語言,具體使用什麼軟體,你應該指的是要是用什麼樣的集成開發環境(IDE)去編譯。因為編輯C語言,可以說只要是能打字的就可以,記事本都可以,但是編譯的常見的有Visual Studio,GNU gcc等一般的編譯工具,但這僅限上層應用工具編譯的C語言代碼,也僅供上層應用使用,在嵌入式中最常用的是Keil,IAR這兩款IDE,也有部分使用eclipse,Qt Creator。具體看MCU支持的開發環境,我接觸過的有Visual C++,Visual studio,Keil,IAR,Atmel Studio,eclipse,

Simplicity Studio,ST Visual Develop,這些都是C語言的編程工具,使用的編譯交叉工具。有些用來編寫C語言的,我用過記事本,notepad++,Vim,sourceinsight,sublime等等。

我是Java軟體工程師,用專業角度分享干貨。在這里推薦三款軟體,足以滿足你學C語言的需求。



最經典的莫過於VC6.0

VC6.0是大部分科班出身的第一款編程軟體。本人軟體工程專業,大一就是使用這款軟體入門C語言,當然這款軟體也可以用來學習c加加。



既然是學院派軟體,那自然有教科書選擇它作為編程C語言入門的原因,簡朴的界面,容易上手的操作方式。

缺點是Windows10安裝有點麻煩,Windows7及以下可以兼容,而且官網也不對此軟體進行維護了。

升級版VC,Visual Studio

如果打算學C語言並且以後成為你謀生的工具,在Windows系統里首推VS,這款軟體不是免費的但是有社區版,當然仔細找找可以弄到破解版本也不是難事。



VS是非常強大的編譯軟體,不僅僅可以寫C語言以及其他帶c的語言,還可以寫Java等主流語言。個人用過2010版本寫c加加,確實是不錯的工具。

Linux系統必備,Vim

以上兩種是Windows用戶必備的C語言學習軟體,如果你想在Linux里掌握更加純粹的編程方式,那麼可以用Vim,這是簡單而又經典的C語言編譯工具。



當然它與前兩款有所不同,寫完以後沒有按鈕給你點擊運行,你必須在Linux的命令行上編譯運行,這對你掌握C語言的原理會有更好的幫助,順便還能把Linux知識掌握一番,一箭雙雕。

C語言使用的軟體可以分為兩種,一種是為懶人設計的可視化編輯工具:IDE,一種是」心中有劍「的無可視化編輯工具:文本。下面我來詳細說說。

一、C語言可視化編程工具IDE

IDE,全稱叫做「Integrated Development Enviroment」(此處我擦把汗,還好英文沒還給老師),中文名叫「集成開發環境」,關鍵字是「集成」。C語言IDE集成了C程序文件打開、保存、編譯、運行、調試、工具等各種功能,所以叫做集成開發環境。

目前有很多種IDE,比較著名的有Visual Studio、Eclipse CDT、Dev-C++等,根據每人不同的愛好去選擇。下面我大概說說Dev-C++主要功能。

1、新建一個C程序文件

開始編寫C程序代碼了,第一步當然是新建一個C程序代碼了,在菜單「File」下找到「New」即可:

可以單獨新建一個C程序代碼文件,也可以新建一個項目。順便說下,在「File」菜單下,還有諸多的其他功能,如打開已有的C語言程序代碼、保存當前的C程序代碼等,充分體現了IDE的「集成」概念。

2、編譯運行一個C程序文件

寫完一個C語言程序代碼後,可以在「Execute」菜單下找到「Compile」和「Run」,也就是編譯和運行的意思。

菜單「Execute」下的功能也是十分的豐富,有單獨的編譯、運行步驟,也有編譯與運行的集成步驟,還有重新編譯、C語言代碼語法檢查、參數設置、清空當前項目等諸多實用功能。

對於C語言初學者來說,Dev-C++是一個很不錯的IDE編程環境。

二、C語言不可視化編程環境

很多C語言編程高手從來不用IDE,你跟他說IDE,他會一臉茫然「那是個啥東西?」不少程序員編程直接打開文本文件,在文本文件上寫好C語言程序代碼,然後GCC編譯,結束!這就是採用不可視化編程環境。

例如上面的那段C語言代碼就寫在一個文本文件里,程序員靠著眼力看下程序沒有什麼語法錯誤,然後直接GCC編譯C程序代碼文件,如下:

上圖是使用GCC編譯時使用的一些編譯參數。可以看到相比較於IDE的一鍵式編譯,手動編譯需要自己指定編譯頭文件目錄、編譯C語言函數庫路徑等,比較麻煩。不過這也是手動編譯的魅力所在,就是其樂無窮!

編譯完了之後會生成一個C程序可執行文件,直接運行這個可執行文件即可。

使用C語言編寫程序,有兩種方式:一種是可視化編程環境,也就是我們常說的IDE(集成開發環境),一種是非可視化編程環境,純手工活兒。至於哪一種更好因人而異,希望能幫助你找到適合自己的編程開發環境!

老話說:欲先善其事必先利其器,所以說對於學習一種程序語言,選擇一個良好的工具是至關重要的!選擇工具之前,首先對語言得有個起碼的認識:

C語言的顯著特點

C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。C語言的文件是由數據序列組成,可以構成二進制文件或文本文件。

常用的軟體有

一般常用IDE(集成開發環境)的有Microsoft Visual C++,Code::Blocks,Dev-C++,Watcom C++ ,Borland C++ Builder,Borland C++,GNU DJGPP C++ ,High C,Lccwin32 C Compiler 3.1,Turbo C,C-Free,win-tc 等等

對於新手小白來說

可以選擇Microsoft Visual C++,因為其特點是:界面友好,功能強大,尤其是調試也很方便。

安裝的方法:(以下是網路安裝經驗,僅供參考)https://jingyan..com/article/4ae03de32997a63eff9e6b33.html

另外推薦幾個視頻學習網站

網易雲課堂;騰訊課堂;慕課網等

***希望對您有幫助,有不同想法,歡迎在下方評論留言!!! 碼上有理友聚在這等著你

推薦VS2017

1、安裝VS2017 IDE軟體,不多說,安裝guide一步步安裝即可。

2、選擇File-New-Project,選擇Visual C++-general-Empty Project新建一個C++工程。

3、在右側的Resource files 右擊Add-New Item選擇C++ File(.cpp)

4、書生意氣風發的寫入Hello world

代碼如下:

#include 「stdio.h」

#include

Int main()

printf("Hello World!」);

system(「pause」);

return 0;

學c語言難道不是應該找學習方法嗎?找APP是不是方向錯了,


就算有課程的APP大多都是收費的,不如網上搜集點學習資料,找別人做好的開源代碼,學習別人的思想


學習編程最重要的是自己敲代碼

推薦一款windows和linux下通用的開放源碼的全功能c/c++集成開發環境:code::blocks


這是linux下的界面。

windows版可以漢化。

也可以使用Turbo c 3.0