91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-06-13
  • 語言: C/C++
  • 標簽: C++??DES??

資源簡介

DES算法的C++實現,可以輸入任意字符,進行加密和解密,命令行界面。

資源截圖

代碼片段和文件信息

#include?
#include?
#include??
#include?
#include?
#include?
#include?
#include??
#include?
#include?“DES.h“
using?namespace?std;
DES::DES(string?input?string?key?int?f?=?0)?{//參數分別為加密內容和密碼(密鑰),以及加密或解密,?默認為加密?
????set_flag(f);
????set_input(input);
????set_key(key);
}

DES::~DES()?{
????cout?<}


string?DES::dec_to_bin(unsigned?long?number?int?digits?=?32)?{
????//將十進制數轉化為digits位二進制
char?retbuf[32];
char?*p?=?&retbuf[sizeof(retbuf)?-?1];?
*p?=?‘\0‘;
int?bits?=?0;
do?{
*--p?=?“01“[number%2];
number?/=?2;
bits++;
}
while?(number?!=?0);
for(;bits? return?p;
}

int?DES::bin_to_dec(string?s)?{
????//二進制轉十進制
????int?result?=?0;
????for?(int?i?=?0;?i?????????result?+=?(s[s.size()-i-1]-‘0‘)*pow(2?i);
????}
????return?result;
}

string?DES::str_to_bin(string?s?int?digits?=?32)?{
????//字符串轉二進制
string?result?=?““;
ostringstream?oss(ostringstream::out);
????oss.flags(ios::dec?|?ios::uppercase);
????for(size_t?i=0;?i???? result?+=?(dec_to_bin(static_cast(s[i])?digits));
}
oss.clear();
????return?result;
}

string?DES::bin_to_str(string?s?int?digits?=?32)?{
????//二進制轉字符串
????//cout?< string?result?=?““;
????unsigned?long?n;
????while(!s.empty())?{
????????//字符串以32位為單位
????????n?=?strtoul(s.substr(0digits).c_str()?0?2);
????????//cout?<????????result.push_back(static_cast(n));
????????s?=?(digits?????}
????return?result;
}

void?DES::create_group()?{
????//建立分組,且分組均為64位
????Group.clear();
????string?temp?=?bin_input;
????int?gflag?=?1;
????while(!temp.empty())?{
????????if?(temp.size()?>?64)?{
????????????Group.push_back(temp.substr(0?64));
????????????temp?=?temp.substr(64);
????????}
????????else?if(temp.size()?==?64)?{
???????? Group.push_back(temp);
???????? gflag?=?0;
????????????break;
}
????????else?{
????????????int?gap?=?8-temp.size()/8;
????????????for?(int?i?=?0;?i?????????????????temp?=?temp?+?dec_to_bin(gap?8);
????????????}
????????????Group.push_back(temp);
????????????break;
????????}
????}
????//填充分組
????if?(gflag?==?0?&&?flag?==?0)?{
????????temp?=?““;
????????for?(int?i?=?0;?i?????????????temp?=?temp?+?dec_to_bin(8?8);
????????}
????????Group.push_back(temp);
????}
}

string?DES::pri_trans(string?s)?{
????//根據IP表進行初始置換,輸入64位,輸出64位
????string?result?=?s;
????for?(int?i?=?0;?i?????????result[i]?=?s[IP[i]-1];
????}
????return?result;
}

string?DES::SXOR(string?s1?string?s2)?{
????//對兩個32位字符串進行異或操作
????string?result?=?s1;
????for?(int?i?=?0;?i?????????result[i]?=?(s1[i]!=s2[i])?‘1‘:‘0‘;
????}
????return?result;
}

string?DES::T_iteration(string?s)?{
????//T迭代
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????9115??2018-10-31?12:28??DES.cpp

?????文件???????6265??2018-10-29?15:59??DES.h

-----------?---------??----------?-----??----

????????????????15380????????????????????2


評論

共有 條評論