Advertisement
Guest User

encryption python

a guest
Apr 25th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. program.py --
  2.  
  3. import random as r
  4.  
  5. def keygen():
  6. string="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm,.<>/;?:'#@~!£$€&*()1234567890 -+_=^"
  7. str_len=len(string)
  8. nst=[]
  9. for i in range(str_len):
  10. num=r.randint(0,1000)
  11. nst.append([string[i],num])
  12. nst.sort(key=lambda x:x[1])
  13. string=""
  14. for i in range(str_len):
  15. string+=nst[i][0]
  16. return string
  17.  
  18. def get_file(string,m="r",d=0):
  19. try:
  20. file=open(string+".txt",m)
  21. except:
  22. print("Whoops... Looks like something bad happened or the file exists. Would recommend encrypting new input text, and then decrypting it.")
  23. if m=="r":
  24. d=file.read()
  25. return d
  26. elif m=="w":
  27. file.write(d)
  28. file.close()
  29.  
  30. def crypt(d=0,k=0,m=0,p=0):
  31. nd=""
  32. if m==0:
  33. nf=""
  34. elif m==1:
  35. p=p.split(",")
  36. for i in range(len(d)):
  37. n=k.index(d[i])
  38. if m==0:
  39. f=r.randint(1,len(k)-1)
  40. nd+=k[int(n-f)]
  41. nf+=str(f)
  42. if i<len(d)-1:
  43. nf+=","
  44. elif m==1: nd+=k[int(p[i])+n-len(k)]
  45. if m==0: return nd,nf
  46. elif m==1: return nd
  47.  
  48.  
  49. def main_prog():
  50. choice=input("1. Encrypt text - 'en'\n2. Decrypt text - 'de'\nAnswer: ")
  51. if choice=="en": encrypt()
  52. elif choice=="de": decrypt()
  53.  
  54. def encrypt():
  55. newkey=keygen()
  56. input_t=input("Input: ")
  57. newdata,newnums=crypt(input_t,newkey)
  58. get_file("key","w",newkey)
  59. get_file("padlock","w",newnums)
  60. get_file("text","w",newdata)
  61. print("Success...")
  62. main_prog()
  63.  
  64. def decrypt():
  65. key=get_file("key")
  66. padlock=get_file("padlock")
  67. encrypted=get_file("text")
  68. decrypted=crypt(encrypted,key,1,padlock)
  69. print("Text below: ")
  70. print(decrypted)
  71. main_prog()
  72.  
  73. main_prog()
  74.  
  75. key.txt --
  76.  
  77. )pts<,D=@?H1vX>Yg:U(qxKWo3$8~4C.wa+n£*T!BbM€5kF7Li^hNd /9AyurVRj#PGf2&Sz0_OeI6-'lQmZ;cEJ
  78.  
  79. padlock.txt --
  80.  
  81. 34,13,36,34,64
  82.  
  83. text.txt --
  84.  
  85. :R5FL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement