Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- void tostring(char* bits, char* str)
- {
- for(int i = 0; i < strlen(bits)/7; ++i)
- {
- str[i]=0;
- for(int j=0; j<7;++j)
- {
- str[i] <<= 1;
- str[i] += bits[7*i+j]&1;
- }
- }
- str[strlen(bits)/7] = 0;
- }
- void Xor(const char* op1, const char* op2, char* res, int n)
- {
- for(int i = 0; i < n; ++i)
- res[i] = op1[i]^op2[i];
- res[n] = 0;
- }
- bool check(char* s, int n)
- {
- for(int i=0;i<0;++i)
- if(s[i]<32 || s[i]>126)return false;
- return true;
- }
- int main(int argc, char** argv)
- {
- char c1[] = "1010110010011110011111101110011001101100111010001111011101101011101000110010011000000101001110111010010111100100111101001010000011000001010001001001010000000010101001000011100100010011011011011011010111010011000101010111111110010011010111001001010101110001111101010000001011110100000000010010111001111010110000001101010010110101100010011111111011101101001011111001101111101111000100100001000111101111011011001011110011000100011111100001000101111000011101110101110010010100010111101111110011011011001101110111011101100110010100010001100011001010100110001000111100011011001000010101100001110011000000001110001011101111010100101110101000100100010111011000001111001110000011111111111110010111111000011011001010010011100011100001011001101110110001011101011101111110100001111011011000110001011111111101110110101101101001011110110010111101000111011001111";
- char c2[] = "1011110110100110000001101000010111001000110010000110110001101001111101010000101000110100111010000010011001100100111001101010001001010001000011011001010100001100111011010011111100100101000001001001011001110010010100101011111010001110010010101111110001100010100001110000110001111111001000100001001010100011100100001101010101111000100001111101111110111001000101111111101011001010000100100000001011001001010000101001110101110100001111100001011101100100011000110111110001000100010111110110111010010010011101011111111001011011001010010110100100011001010110110001001000100011011001110111010010010010110100110100000111100001111101111010011000100100110011111011001010101000100000011111010010110111001100011100001111100100110010010001111010111011110110001000111101010110101001110111001110111010011111111010100111000100111001011000111101111101100111011001111";
- char a[700], b[700];
- int res_len = strlen(c1)/7;
- tostring(c1, a), tostring(c2, b);
- char test[400];
- cin.getline(test, 400);
- for(int i=0; i < res_len - int(strlen(test)) + 1; ++i)
- {
- char key[400];
- Xor(a+i, test, key, strlen(test));
- char res[400];
- Xor(b+i, key, res, strlen(test));
- if(check(res, strlen(test)))
- cout<<i<<endl<<res<<endl<<test<<endl<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement