In [149]:
import random,math
fp = open(r'd:temp\单词.txt')
text = fp.read()
fp.close()##读出单词


words=[]
words = text.split()##分割单词
print('原单词为:',words)
print('\n')

fp = open(r'd:temp\words.txt','w')
fp.write('\n'.join(words))
fp.close()##写到另一个文件中

j=sum=0##数组下标
fp = open(r'd:temp\words.txt')
text=fp.read()

def get_word_table(list):
    word_t=[]
    for w in list:
            word_t.append(w)
    return word_t##得到每个字母
word_table=get_word_table(text.replace('\n',''))

new_word=[]         ##用来放加密后的单词
new_ch=[]           ##加密后的字母
for word in words:  ##循环加密
    len_of_word=len(word) ##得到每个单词的长度
    #print(len_of_word)
    num=random.randrange(100000000,999999999)##随机生成的9位数
    key=(len_of_word-1)*1000000000+num       ##得到密匙key
    key=str(key)                         ##将key转化为字符型,拆分10个数字
    
    for i in key:                #10次循环得到10个加密后的字母
        if(j<sum+len_of_word):  ##属于原文件单词的字母用以下方式加密
                #print(word_table[j])
                if(ord(word_table[j])+int(i)>122):
                    ch=chr(ord(word_table[j])+int(i)-26)##注意越界
                else:ch=chr(ord(word_table[j])+int(i))
                new_ch.append(ch)   ##将加密后的字母存放在list中
                j+=1
        else: new_ch.append(chr(random.randint(97,122)))   ##不在单词中的字母随意生成
    sum=sum+len_of_word           ##指针指向下一单词的开头
#print(new_ch)
s=''                          ##将加密后的字母连成字符串
for i in range(len(new_ch)):
    s=s+new_ch[i]
for i in range(0,len(new_ch),10): ##每10个字母截成一个单词存放在new_word中
    new_word.append(s[i:i+10])
print('加密后为:',new_word)
fp.close()

fp = open(r'd:temp\newwords.txt','w')
fp.write(' '.join(new_word)) ##每个加密后的单词以空格隔开
fp.close()


原单词为: ['alter', 'burst', 'dispose', 'blast', 'consume', 'split', 'spit', 'spill', 'slip', 'slide', 'bacteria', 'breed', 'budget', 'candidate', 'campus', 'liberal', 'transform', 'transplant', 'transport', 'shift', 'vary', 'vanish', 'suspicion', 'suspicious', 'mild', 'tender']


加密后为: ['eoceyhlzwq', 'fdrtvbicvh', 'jqtppsnzyo', 'fojwwaqqmd', 'irtydmfyyy', 'wxsjwssobk', 'vxqbskvxne', 'wwimuqyeyi', 'vriwnxvkal', 'wpjigyduak', 'ihhzevibak', 'fvmnfzjpzu', 'gxhgfxynez', 'khnkqgjukl', 'hfmqvselbr', 'rjdkvjuvfz', 'baiobkpyrt', 'cajowvoivz', 'btbruvwwyd', 'wnmgcfbvif', 'yeydpxicvl', 'afsmsmpjqq', 'ayapolnxrh', 'bbuxkjixyb', 'pjrfgqlsok', 'ynplgygwyt']

In [ ]: