首页 > 代码库 > 仿射密码加密解密文件流
仿射密码加密解密文件流
#include<iostream>#include<string>#include<fstream>#include<Windows.h>using namespace std;class PWoper{ string inpatch; string outpatch;public: PWoper(string in, string out) { inpatch = in; outpatch = out; } void encrypt() { ifstream init(inpatch, ios::binary); ofstream outit(outpatch, ios::binary); if (!init || !outit) { cout << "IN ERROR OR OUT ERROR!" << endl; } int *initp = new int(); int *outitp = new int(); while (init.read((char*)initp, 1)){ //cout << *initp << endl; *outitp = (*initp * 177 + 135) % 311; //cout << "out--"<<*outitp << endl; //一个字节8位,最大256;这里的 "*outitp mod 311" 数值最大311,如果以1个字读进来运算以后write装不下。 outit.write((char*)outitp, 2); } cout << "encrypt success!\n"; init.close(); outit.close(); //delete original data string temp = "del "; temp += inpatch; //system命令只接受一个参数,以下代码实现system("del 变量")。 const char *link = temp.data(); system(link); } void decrypt() { ofstream init(inpatch, ios::binary); ifstream outit(outpatch, ios::binary); if (!init || !outit) { cout << "IN ERROR OR OUT ERROR!" << endl; } int *ini = new int(); int *outi = new int(); while (outit.read((char*)outi, 2)){ //cout << *outi << endl; *ini = ((*outi - 135 + 311) * 123) % 311; //cout <<"out"<< *ini <<endl; // init.write((char*)ini, 1); } cout << "decrypt success!\n"; init.close(); outit.close(); }};int main(){ string inpatch, outpatch, str; cout << "input InPtach: "; cin >> inpatch; cout << "input OutPatch: "; cin >> outpatch; PWoper pwoper(inpatch, outpatch); pwoper.encrypt(); cout << "input ok to decrypt: "; cin >> str; //system("cls"); if (str == "ok") pwoper.decrypt(); else { cout << "input error!"; system("pause"); } system("pause");}
仿射密码加密解密文件流
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。