¡Ayude a compilar un algoritmo de descifrado en c, preferiblemente un exe!
#include <stringamp;gt;
usando el espacio de nombres std;
cadena ReverseStr(string strFormer)
{
cadena strReversed = "";
cadena:: iterador iter = strFormer.end();
mientras( iter ! = strFormer .begin())
{
strReversed = *(-iter);
}
return strReversed
}
cadena Decode(cadena PlainStr, cadena clave)
{
int i;
cadena jiemi; p>
cadena KeyChar;
cadena NewStr;
int Pos;
cadena Lado1;
cadena Lado2; p>
string strChar;
int _Vb_t_i4_0;
Pos = 1;
if(PlainStr.size()2 == 0) p>
{
Lado1 = ReverseStr(PlainStr.substr(0, PlainStr.size()/2));
Lado2 = ReverseStr(PlainStr. substr(PlainStr. size()/2));
PlainStr = Lado1 Lado2;
}
_Vb_t_i4_0 = PlainStr.size();
int bl_1, bl_2, bl_3, bl_4=0;
for(i=1; i<=_Vb_t_i4_0; i)
{
strChar = PlainStr. substr(i-1, 1);
KeyChar = key.substr(Pos-1, 1);
bl_1 = (strChar[0] ^ KeyChar[0]) < ; 32?1:0;
bl_2 = (strChar[0] ^ KeyChar[0]) > 126?1:0;
bl_3 = (strChar[0] amp; ; lt; 0? 1: 0) | (bl_1 | bl_2);
bl_4 = (strChar[0] amp; gt. 0xFF? 1: 0) | if(bl_4)
{
cout amp;lt;amp;lt; "si" amp;lt;amp;lt;
NewStr = strChar;
cout amp;lt;amp;lt; "strChar:" amp;lt;amp;lt;
endl;
}
else
{
cout amp;lt;amp;lt "else" amp;lt;amp; ;lt; endl;
char ch = strChar[0] ^ KeyChar[0];
cadena str = "";
str = ch;
NewStr = str;
cout amp;lt;amp;lt; strChar amp;lt;amp;lt; "xor" amp;lt;amp;lt; ;< " es " <amp;lt; ch <amp;lt; endl;
}
if(key.size() = = Pos)
{
cout amp;lt;amp;lt; "key.size() == Pos" amp;lt;amp;lt;
Pos = 0;
}
Pos = 1;
}
jiemi = NewStr
devuelve jiemi;
}
int main()
{
string src("esto es una manzana") ;
string key("123456");
string decode = Decode(src, key);
coutamp;lt;amp;lt;decodeamp; endl;
return 0;
}
El programa se ejecuta como se muestra en la figura:
El ejemplo anterior se encuentra en la función principal. El ejemplo anterior utiliza una cadena de prueba y una contraseña en la función principal.
Si desea lograr el efecto de los comandos de DOS, descargue el archivo adjunto, que contiene el código fuente y el archivo exe.