回 帖 发 新 帖 刷新版面

主题:用c++ builder 给文件加密

请教,有哪位高手给写一段代码,我想给文本文件加密、解密。急急急

回复列表 (共1个回复)

沙发

//---------------------------------------------------------------------------

#pragma hdrstop
#include<iostream.h>
#include <conio.h>
//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
/*
int a,q,b,g,s;
cout<<"input the a:";
cin>>a;
if (999<a&&a<10000)
    {
     s=((a/1000+7)%10);
     g=(((a/100)%10+7)%10);
     q=(((a/10)%100+7)%10);
     b=((a%1000+7)%10);
     cout<<"a="<<a<<"  b="<<q<<b<<g<<s<<endl;
     }
else
    cout<<"the number is error\n";
getche();
return 0;
}

   */

int a,b;
cout<<"input the a:";
cin>>a;
if (0<a&&a<10000)
    {
     b=(a/1000+10-7)%10*10+((a/100)%10+10-7)%10*1+((a/10)%100+10-7)%10*100+(a/1%1000+10-7)%10*1000;
     cout<<"a="<<a<<"  b="<<b<<endl;
     }
else
    cout<<"the number is error\n";
getche();
return 0;
}

//---------------------------------------------------------------------------



我刚作完个练习,可以帮我看一下吗?
原题是这样的
将每个位换成该位与7的和并用10求模。然后交换第一位与第三位,交换第二位与第四位。并打印加密后的整数。再写一个解密的,解密原先的四位数。


这个题我在加密时为了避免有0的情况,只好折开了四个数的输出,不知有不拆的方法吗?
在解密时
(a/1000+10-7)%10*10             q-s
((a/100)%10+10-7)%10*1          b-g
((a/10)%100+10-7)%10*100        s-q 那就((a/10)%100+10-7)%10*1000
(a/1%1000+10-7)%10*1000         g-b     (a/1%1000+10-7)%10*100

可是如何这样写解出来的千百就与原码换位了。
不知我是哪错了,希望高手能帮我一下?
     q-

我来回复

您尚未登录,请登录后再回复。点此登录或注册