python實現(xiàn)簡單加密解密機制
本文使用python實現(xiàn)一個簡單的加密解密機制。
描述:結合26個字母、以一個單詞作為秘鑰,使用python實現(xiàn)簡單的加密解密機制
秘鑰:大寫的英文字符串
明文:包含空格、大小寫字母、數(shù)字等的字符串
代碼實現(xiàn):
# -*- coding: utf-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import string
def suanfa(key):
alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
jiami_key = {}
jiemi_key = {}
list0 = list(alp)
list1 = list(key)
list2 = list(alp)
for n in list1:
for m in list2:
if m == n:
list2.remove(m)
alp1 = ''.join(list2)
key1 = key + alp1
list3 = list(key1)
a = 0
if a < len(list0):
for m in list0:
jiami_key[m] = list3[a]
a = a + 1
b = 0
if b < len(list3):
for n in list3:
jiemi_key[n] = list0[b]
b = b + 1
#print jiami_key
#print jiemi_key
return jiami_key, jiemi_key
def bianma(key_dic, data):
list_data = list(data)
data1 = []
for a in list_data:
if a == ' ':
data1.append(a)
elif a.islower():
a = a.upper()
if key_dic.has_key(a):
x = key_dic[a]
data1.append(x.lower())
elif a.isupper():
if key_dic.has_key(a):
x = key_dic[a]
data1.append(x)
else:
data1.append(a)
data2 = ''.join(data1)
#print data2
return data2
def main():
key = 'ZDFKJMNX'
data = 'a bdcd sFDGDSGFDG113243 3'
print "秘鑰:" + key
print "明文:" + data
jiami_key, jiemi_key = suanfa(key)
miwen = bianma(jiami_key, data)
mingwen = bianma(jiemi_key, miwen)
print "加密明文所得的密文:" + miwen
print "解密密文所得的明文:" + mingwen
return True
if __name__ == "__main__":
main()
運行結果:
# python jiami.py
秘鑰:ZDFKJMNX
明文:a bdcd sFDGDSGFDG113243 3
加密明文所得的密文:z dkfk qMKNKQNMKN113243 3
解密密文所得的明文:a bdcd sFDGDSGFDG113243 3
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Pytorch搭建簡單的卷積神經網絡(CNN)實現(xiàn)MNIST數(shù)據集分類任務
這篇文章主要介紹了Pytorch搭建簡單的卷積神經網絡(CNN)實現(xiàn)MNIST數(shù)據集分類任務,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Keras Convolution1D與Convolution2D區(qū)別說明
這篇文章主要介紹了Keras Convolution1D與Convolution2D區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Pandas借助Numpy實現(xiàn)優(yōu)化的條件檢索代碼
Numpy其實是最早的處理數(shù)據的Python庫,它的核心ndarray對象,是一個高效的n維數(shù)組結構,本文主要介紹了Pandas如何借助Numpy優(yōu)化條件檢索,感興趣的可以了解下2024-03-03
Django?url.py?path?name同一app下路由別名定義
這篇文章主要為大家介紹了Django?url.py?path?name同一app下路由別名定義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07

