• Parolli autentifikatsiyalash algoritmining dasturiy amalga oshirilishi.
  • Autentifikatsiyalash algoritmining dasturiy kodi(S++ dastur- lash tilida).
  • • int i,al j,nB,m,iB,k,K,B[8],n,t,d, round




    Download 7,8 Mb.
    Pdf ko'rish
    bet177/249
    Sana20.05.2024
    Hajmi7,8 Mb.
    #246687
    1   ...   173   174   175   176   177   178   179   180   ...   249
    • int i,al j,nB,m,iB,k,K,B[8],n,t,d, round;
    • char *Text=new char[ 1000];
    • unsigned char ch;
    • strcpy(Text,Textl);
    • i=strlen(Text);
    • keygen();
    • intmc=0;
    • for(iB=0,nB=0,m=0;m<(strlen(Text)/8);m++) //Repeat for 
    TextLenth/8 times.
    • {
    • for(iB=0,i=0;i<8;i++,nB++)
    • {
    • ch=Text[nB];
    • n=(int)ch;//(int)Text[nB];
    • for(K=7 ;n>= 1 ;K~)
    • {
    • B[K]=n%2; //Converting 8-Bytes to 64-bit Binary Format
    • n/=2;
    • } for(;K>=0;K—) B[K]=0;
    • for(K=0;K<8;K++,iB++) total[iB]=B[K]; //Now 'total' 
    contains the 64-Bit binary format of 8-Bytes
    • }
    • IP(); //Performing initial permutation on 'total[64]'
    • for(i=0;i<64;i++) total[i]=ip[i]; //Store values of ip[64] into 
    total[64]
    275


    • for(i=0;i<32;i++) left[i]=total[i]; // 
    +—> left[32]
    • // total[64]—|
    • for(;i<64;i++) right[i-32]=total[i];// 
    +--> right[32]
    • for(round=l;round<=16;round++)
    • {
    • Expansion(); //Performing expansion on 'right[32]' to get 
    'expansion[48]'
    • xoroneD(round);
    • substitution();//Perform substitution on xor 1 [48] to get 
    sub [32]
    • permutation(); //Performing Permutation on sub[32] to get
    p[32]
    • xor_two(); //Performing XOR operation on left[32],p[32] to 
    get xor2[32]
    • for(i=0;i<32;i++) left[i]==right[i]; //Dumping right[32] into 
    left[32]
    • for(i=0;i<32;i++) right[i]=xor2[i]; //Dumping xor2[32] into 
    right[32]
    • } //rounds end here
    • for(i=0;i<32;i++) temp[i]=right[i]; // Dumping -->[ 
    swap32bit ]
    • for(;i<64;i++) temp[i]=left[i-32]; // lefit[32],right[32] into 
    temp [64]
    • inverse(); //Inversing the bits of temp[64] to get inv[8][8]
    • /* Obtaining the Cypher-Text into final[1000]*/
    • k=128; d=0;
    • for(i=0;i<8;i++)
    • {
    • for(j=0;j<8;j++)
    • {
    • d=d+inv[i][j]*k;
    • k=k/2;
    • 
    }
    276


    • fmal[mc++]=(char)d;
    • k=128; d=0;
    • }
    • } //for loop ends here
    • final[mc]-\0';
    • char *final 1 =new char[1000];
    • for(i=0,j=strlen(Text);i• fmall[i]=fmal[j]; finall[i]='\0';
    • return(fmal);
    • }
    • intmain()
    • {
    • D esdl,d2;
    • char *str=new char[1000];
    • char *strl=new char[1000];
    • //strcpy(str,"PHOENIX it & ece solutions.");
    • cout«"Enter a string :
    • gets(str);
    • strl=dl.Encrypt(str);
    • cout«"\ni/p Text: "<• cout«"\nC ypher: "< • // ofstream fout("out2_fil.txt"); f o u t« s tr l; fout.close();
    • cout«"\no/p Text: "<• return 0;
    • }
    • // Kalit generatsiyasi jarayoni
    • void Des::keygen()
    • {
    • PermChoicelQ;
    • int ij,k=0;
    • for(i-0;i<28;i++)
    • {
    • ck[i]=pcl[i];


    • }
    • for(i=28;i<56;i++)
    • {
    . dk[k]=pcl[i];
    • k++;
    • }
    • int noshift=0, round;
    • for(round= 1 ;round<= 16;round++)
    • {
    • if(round== 11 |round==2| |round==9| |round== 16)
    • noshift=l;
    • else
    • noshift=2;
    • while(noshift>0)
    • {
    • intt;
    . t=ck[0];
    • for(i=0;i<28;i++)
    • ck[i]=ck[i+l];
    • ck[27]=t;
    • t=dk[0];
    • for(i=0;i<28;i++)
    • dk[i]=dk[i+l];
    • dk[27]=t;
    • noshift—;
    • }
    • PermChoice2();
    • for(i=0;i<48;i++)
    • keyi[round-l][i]=z[i];
    • }
    • }
    278


    Parolli autentifikatsiyalash algoritmining dasturiy amalga
    oshirilishi.
    Oddiy autentifikatsiyani tashkil etish sxemalari nafaqat parol- 
    lami uzatish, balki ulami saqlash va tekshirish turlari bilan ajralib 
    turadi. Eng keng tarqalgan usul - foydalanuvchilar parolini tizimli 
    fayllarda ochiq holda saqlash usulidir. Bunda fayllarga o‘qish va yo- 
    zishdan himoyalash atributlari o‘matiladi (masalan, operatsion ti- 
    zimdan foydalanishni nazoratlash ro‘yxatidagi mos imtiyozlarni tav- 
    siflash yordamida). Tizim foydalanuvchi kiritgan parolni parollar 
    faylida saqlanayotgan yozuv bilan solishtiradi. Bu usulda shifrlash 
    yoki bir tomonlama fimksiyalar kabi kriptografik mexanizmlar ish- 
    latilmaydi. Ushbu usulning kamchiligi - niyati buzuq odamning ti- 
    zimda ma’mur imtiyozlaridan, shu bilan birga tizim fayllaridan, 
    jumladan, parol fayllaridan foydalanish imkoniyatidir.
    Autentifikatsiyalash algoritmining dasturiy kodi(S++ dastur-
    lash tilida).
    Foydalanuvchini autentifikatsiyadan o‘tkazish funksiyasi:
    void Auth()
    {
    cout«"A uthentication process"; 
    ifstream Passfile("password.txt", ios::in);
    Passfile»inpass;
    ifstream Userfile("usemame.txt", ios::in);
    Userfile»inuser; 
    system("cls"); 
    cout«"USERNAME: "; 
    cin»user;
    cout«"PASSWORD: "; 
    cin»pass;
    Userfile.close();
    Passfile.close();
    if(user==inuser&&pass==inpass)
    {
    279


    cout«"\nH it enter to continue to members area";
    getch();
    //Nimadir sh qisin 
    main();
    }
    else
    {
    cout«"nope";
    getch();
    main();
    }
    }
    Foydalanuvchini ro‘yxatdan o‘tkazish funksiyasi: 
    void RegistrationQ
    {
    string tempuser, temppassword; 
    cout«"E nter Username: 
    cin»tem puser; 
    cout«"\nEnter password: 
    cin»temppassword;
    ofstream Userfile("usemame.txt", ios::out)'; 
    Userfile«tempuser;
    Userfile.closeQ;
    ofstream Passfile(''password.txt", ios::out); 
    Passfile«temppassword;
    Passfile.close();
    cout«"A ccount hass been added";
    getch();
    main();

    Download 7,8 Mb.
    1   ...   173   174   175   176   177   178   179   180   ...   249




    Download 7,8 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    • int i,al j,nB,m,iB,k,K,B[8],n,t,d, round

    Download 7,8 Mb.
    Pdf ko'rish