In [28]:
import random

def get_wordlist():
    fh = open(r'f:\temp\words.txt')
    text = fh.read()
    fh.close()
    words = text.split(' ')
    
    fh = open(r'f:\temp\linewords.txt', 'w')
    wordnum=0
    for word in words:
        fh.write(word + '\n')
        wordnum+=1
    fh.close()
    return words,wordnum

def get_keylist(wordnum,words):
    keys=[]
    i=0
    while(i<wordnum):
        oneword=words[i]
        n=len(oneword)
        ran=random.randint(100000000,999999999)
        key=(n-1)*1000000000+ran
        keys.append(key)
        i+=1
    return keys

def encrypt(oneword,onekey):#加密
    onekey=str(onekey)
    newword=[]#随机生成的十位字母
    for i in range(10):
        newword.append(chr(random.randint(97, 122)))
    length=len(oneword)
    start=0
    end=1
    while(end<length+1):#开始替换
        a=oneword[start:end:]
        b=onekey[start:end:]
        if( (ord(a)+int(b))>122 ):
            c=chr((ord(a)+int(b))-26)
        else:
            c=chr(ord(a)+int(b))
        newword[start:end:]=c
        start+=1
        end+=1
    encryptword=(''.join(newword))  
    return encryptword    

def decrypt(encryptword,key):#解密
    trueword=[]
    length=int(key[:1:])+1
    start=0
    end=1
    while(end<length+1):#开始替换
        a=encryptword[start:end:]
        b=key[start:end:]
        if( (ord(a)-int(b))<97 ):
            c=chr((ord(a)-int(b))+26)
        else:
            c=chr(ord(a)-int(b))
        trueword[start:end:]=c
        start+=1
        end+=1
    decryptword=(''.join(trueword))
    return decryptword    

def main():
    
    #获取Word列表与key列表
    (words,wordnum)=get_wordlist() 
    keys=get_keylist(wordnum,words)
    
    #加密并输出到encryptwords.txt中    
    encryptwords=[]
    for i in range(wordnum):
        oneword=words[i]
        onekey=keys[i]
        encryptwords.append(encrypt(oneword,onekey))
    
    fh = open(r'f:\temp\encryptwords.txt', 'w')
    fh.write(' '.join(encryptwords))
    fh.close()
    
    #解密并输出到decryptwords.txt中 
    fh = open(r'f:\temp\encryptwords.txt')
    text = fh.read()
    fh.close()
    encryptwords = text.split(' ')
    
    #填写解密单词列表
    i=0
    decryptwords=[]
    for i in range(wordnum):
        encryptword=encryptwords[i]
        key=str(keys[i])
        decryptword=decrypt(encryptword,key)
        decryptwords.append(decryptword)     
        i+=1
        
    fh = open(r'f:\temp\decryptwords.txt', 'w')
    fh.write(' '.join(decryptwords))
    fh.close()
    print(words)
    print(keys)
    print(encryptwords)
    print(decryptwords)

    
main()


['apple', 'banana', 'orange', 'friendship', 'holliday', 'car', 'volleyball', 'baseball']
[4228145212, 5690258711, 5762723917, 9719018078, 7527238441, 2349226234, 9109020218, 7159898694]
['errtfahiyk', 'ggwapfpzpo', 'tygpngsggm', 'oyjnneahpx', 'otnskgiclb', 'edvtuknfjc', 'eplueabcmt', 'ibxnjjtrjo']
['apple', 'banana', 'orange', 'friendship', 'holliday', 'car', 'volleyball', 'baseball']