fork download
  1. #include <stdio.h>
  2.  
  3. def translate(x): #helper function used to translate a letter into a number
  4. if x == 'A':
  5. return 0
  6. elif x == 'B':
  7. return 1
  8. elif x == 'C':
  9. return 2
  10. elif x == 'D':
  11. return 3
  12. elif x == 'E':
  13. return 4
  14. elif x == 'F':
  15. return 5
  16. elif x == 'G':
  17. return 6
  18. elif x == 'H':
  19. return 7
  20. elif x == 'I':
  21. return 8
  22. elif x == 'J':
  23. return 9
  24. elif x == 'K':
  25. return 10
  26. elif x == 'L':
  27. return 11
  28. elif x == 'M':
  29. return 12
  30. elif x == 'N':
  31. return 13
  32. elif x == 'O':
  33. return 14
  34. elif x == 'P':
  35. return 15
  36. elif x == 'Q':
  37. return 16
  38. elif x == 'R':
  39. return 17
  40. elif x == 'S':
  41. return 18
  42. elif x == 'T':
  43. return 19
  44. elif x == 'U':
  45. return 20
  46. elif x == 'V':
  47. return 21
  48. elif x == 'W':
  49. return 22
  50. elif x == 'X':
  51. return 23
  52. elif x == 'Y':
  53. return 24
  54. elif x == 'Z':
  55. return 25
  56.  
  57. def backToLetter(x): #a helper function used to turn a number back into a letter
  58. if x == 0:
  59. return 'A'
  60. elif x == 1:
  61. return 'B'
  62. elif x == 2:
  63. return 'C'
  64. elif x == 3:
  65. return 'D'
  66. elif x == 4:
  67. return 'E'
  68. elif x == 5:
  69. return 'F'
  70. elif x == 6:
  71. return 'G'
  72. elif x == 7:
  73. return 'H'
  74. elif x == 8:
  75. return 'I'
  76. elif x == 9:
  77. return 'J'
  78. elif x == 10:
  79. return 'K'
  80. elif x == 11:
  81. return 'L'
  82. elif x == 12:
  83. return 'M'
  84. elif x == 13:
  85. return 'N'
  86. elif x == 14:
  87. return 'O'
  88. elif x == 15:
  89. return 'P'
  90. elif x == 16:
  91. return 'Q'
  92. elif x == 17:
  93. return 'R'
  94. elif x == 18:
  95. return 'S'
  96. elif x == 19:
  97. return 'T'
  98. elif x == 20:
  99. return 'U'
  100. elif x == 21:
  101. return 'V'
  102. elif x == 22:
  103. return 'W'
  104. elif x == 23:
  105. return 'X'
  106. elif x == 24:
  107. return 'Y'
  108. elif x == 25:
  109. return 'Z'
  110.  
  111. def affineCrypt(plaintext): #a function representing the Affine Cipher. Takes a string input
  112. newtext = plaintext.replace(" ", '') #replacing all spaces
  113. p = 0
  114. i = ""
  115. c = ""
  116. for x in newtext: #going through each letter of the plaintext
  117. p = translate(x) #translating each letter into a number
  118. c += backToLetter(((5*p)+9) % 26) #employ the formula and turn the result back into a letter and place it into the ciphertext string
  119. return c
  120.  
  121. if __name__ == "__main__":
  122. plaintext = "CRYPTOISFUN"
  123. print(affineCrypt(plaintext))
Success #stdin #stdout 0.04s 9652KB
stdin
45
stdout
TQZGABXVIFW