本文发布于1423天前,最后更新于 1423 天前,其中的信息可能已经有所发展或是发生改变。
def StrEncrypt(
# 待加密字符串
ordstr,
# 偏移量
npos):
productstr = ""
strlen = len(ordstr)
for i in range(strlen):
asc = ord(ordstr[i])
# 如果在字母表范围内就进行偏移
if(asc >= ord('a') and asc <= ord('z')):
productstr += chr((ord(ordstr[i]) - ord('a') +
npos) % 26 + ord('a'))
elif(asc >= ord('A') and asc <= ord('Z')):
productstr += chr((ord(ordstr[i]) - ord('A') +
npos) % 26 + ord('A'))
# 如果不在就直接连接字符串
else:
productstr += ordstr[i]
return productstr
def StrDecrypt(
# 待解密字符串
ordstr,
# 偏移量
npos):
productstr = ""
strlen = len(ordstr)
for i in range(strlen):
asc = ord(ordstr[i])
# 如果在字母表范围内就进行偏移
if(asc >= ord('a') and asc <= ord('z')):
productstr += chr((ord(ordstr[i]) - ord('a') -
npos) % 26 + ord('a'))
elif(asc >= ord('A') and asc <= ord('Z')):
productstr += chr((ord(ordstr[i]) - ord('A') -
npos) % 26 + ord('A'))
# 如果不在就直接连接字符串
else:
productstr += ordstr[i]
return productstr
def StrKeyEncrypt(
# 待加密字符串
ordstr,
# 偏移量
key):
productstr = ""
strlen = len(ordstr)
keylen = len(key)
for i in range(strlen):
asc = ord(ordstr[i])
# 如果在字母表范围内就进行偏移
npos = int(key[i % keylen]) # 取key
if(asc >= ord('a') and asc <= ord('z')):
productstr += chr((ord(ordstr[i]) - ord('a') +
npos) % 26 + ord('a'))
elif(asc >= ord('A') and asc <= ord('Z')):
productstr += chr((ord(ordstr[i]) - ord('A') +
npos) % 26 + ord('A'))
# 如果不在就直接连接字符串
else:
productstr += ordstr[i]
return productstr
def StrKeyDecrypt(
# 待解密字符串
ordstr,
# 偏移量
key):
productstr = ""
strlen = len(ordstr)
keylen = len(key)
for i in range(strlen):
asc = ord(ordstr[i])
# 如果在字母表范围内就进行偏移
npos = int(key[i % keylen]) # 取key
if(asc >= ord('a') and asc <= ord('z')):
productstr += chr((ord(ordstr[i]) - ord('a') -
npos) % 26 + ord('a'))
elif(asc >= ord('A') and asc <= ord('Z')):
productstr += chr((ord(ordstr[i]) - ord('A') -
npos) % 26 + ord('A'))
# 如果不在就直接连接字符串
else:
productstr += ordstr[i]
return productstr
借用老师的电脑发布的博文