Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // I made an enigma password machine!
- #include<bits/stdc++.h>
- using namespace std;
- char wlr1[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char wlr2[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char wlr3[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char wlr4[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char wlr5[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char wlr6[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- char rflr[32] = {'d', 'n', 'z', 'a', 'h', 'w', 'm', 'e', 'y', 'u', 'q', 's', 'g', 'b', 't', 'v', 'k', 'x', 'l', 'o', 'j', 'p', 'f', 'r', 'i', 'c'};
- char wll1[32] = {'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm'};
- char wll2[32] = {'m', 'n', 'b', 'v', 'c', 'x', 'z', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'p', 'o', 'i', 'u', 'y', 't', 'r', 'e', 'w', 'q'};
- char wll3[32] = {'q', 'e', 't', 'u', 'o', 'a', 'd', 'g', 'j', 'l', 'x', 'v', 'n', 'w', 'r', 'y', 'i', 'p', 's', 'f', 'h', 'k', 'z', 'c', 'b', 'm'};
- char wll4[32] = {'b', 'n', 'm', 'v', 'c', 'z', 'x', 'g', 'h', 'j', 'k', 'l', 'f', 'd', 's', 'a', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'e', 'w', 'q'};
- char wll5[32] = {'p', 'o', 'i', 'u', 'y', 't', 'r', 'e', 'w', 'q', 'l', 'k', 'j', 'h', 'g', 'f', 'd', 's', 'a', 'm', 'n', 'b', 'v', 'c', 'x', 'z'};
- char wll6[32] = {'z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'};
- char rfll[32] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
- int startp[8] = {0, 0, 0, 0, 0};
- string str;
- int len;
- void enc10(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll1[(i + startp[1]) % 26] == a)
- {
- cout << char(wlr1[i]);
- break;
- }
- }
- }
- void enc9(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll2[(i + startp[2]) % 26] == a)
- {
- enc10(wlr2[i]);
- break;
- }
- }
- }
- void enc8(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll3[(i + startp[3]) % 26] == a)
- {
- enc9(wlr3[i]);
- break;
- }
- }
- }
- void enc7(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll4[(i + startp[4]) % 26] == a)
- {
- enc8(wlr4[i]);
- break;
- }
- }
- }
- void enc6(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll5[(i + startp[5]) % 26] == a)
- {
- enc7(wlr5[i]);
- break;
- }
- }
- }
- void enc11(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wll6[(i + startp[5]) % 26] == a)
- {
- enc7(wlr6[i]);
- break;
- }
- }
- }
- void reflect(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (rflr[i] == a)
- {
- enc6(rfll[i]);
- }
- }
- }
- void enc5(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr5[(i + 26 - startp[5]) % 26] == a)
- {
- reflect (wll5[i]);
- break;
- }
- }
- }
- void enc4(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr4[(i + 26 - startp[4]) % 26] == a)
- {
- enc5(wll4[i]);
- break;
- }
- }
- }
- void enc3(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr3[(i + 26 - startp[3]) % 26] == a)
- {
- enc4(wll3[i]);
- break;
- }
- }
- }
- void enc2(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr2[(i + 26 - startp[2]) % 26] == a)
- {
- enc3(wll2[i]);
- break;
- }
- }
- }
- void enc0(char a)
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr6[(i + 26 - startp[2]) % 26] == a)
- {
- enc3(wll6[i]);
- break;
- }
- }
- }
- void enc1(char a)
- {
- if (isupper((int)(a)))
- {
- a += 32;
- }
- if (islower((int)(a)))
- {
- for (int i = 0; i < 26; i++)
- {
- if (wlr1[(i + 26 - startp[1]) % 26] == a)
- {
- enc2(wll1[i]);
- break;
- }
- }
- startp[1] += 1;
- if (startp[1] == 26)
- {
- startp[2] += 1;
- startp[1] = 0;
- if (startp[2] == 26)
- {
- startp[3] += 1;
- startp[2] = 0;
- if (startp[3] == 26)
- {
- startp[4] += 1;
- startp[3] = 0;
- if (startp[4] == 26)
- {
- startp[5] += 1;
- startp[4] = 0;
- if (startp[5] == 26)
- {
- startp[5] = 0;
- }
- }
- }
- }
- }
- }
- else
- {
- cout << a;
- }
- }
- /*
- * 所以enc11和enc0有何作用?
- */
- // -----------------------------------------------------------
- int main()
- {
- cout << "输入加/解密内容" << endl;
- getline(cin, str);
- cout << endl;
- len = str.length();
- for (int i = 0; i < len; i++)
- {
- enc1(str[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment