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()
In [ ]: