python 异或加密字符串的实例

yipeiwu_com6年前Python基础

做个简单习题:输入明文给定秘钥,密文还原,按位异或处理。

import base64 as b64

def xor_encrypt(tips,key):
 ltips=len(tips)
 lkey=len(key)
 secret=[]
 num=0
 for each in tips:
 if num>=lkey:
  num=num%lkey
 secret.append( chr( ord(each)^ord(key[num]) ) )
 num+=1

 return b64.b64encode( "".join( secret ).encode() ).decode()


def xor_decrypt(secret,key):

 tips = b64.b64decode( secret.encode() ).decode()

 ltips=len(tips)
 lkey=len(key)
 secret=[]
 num=0
 for each in tips:
 if num>=lkey:
  num=num%lkey

 secret.append( chr( ord(each)^ord(key[num]) ) )
 num+=1

 return "".join( secret )


tips= "1234567"
key= "owen"
secret = xor_encrypt(tips,key)
print( "cipher_text:", secret )

plaintxt = xor_decrypt( secret, key )
print( "plain_text:",plaintxt )

以上这篇python 异或加密字符串的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python算法题 链表反转详解

python算法题 链表反转详解

链表的反转是一个很常见、很基础的数据结构题,输入一个单向链表,输出逆序反转后的链表,如图:上面的链表转换成下面的链表。实现链表反转有两种方式,一种是循环迭代,另外一种方式是递归。 第...

详解Django中Request对象的相关用法

详解Django中Request对象的相关用法

从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时并没有讲太多。 让我们回忆下:每个view函数的第一个参数是一个HttpRe...

打包发布Python模块的方法详解

前言 昨天把自己的VASP文件处理库进行了打包并上传到PyPI,现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来)...

浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)

池化层定义在tensorflow/python/layers/pooling.py. 有最大值池化和均值池化。 1、tf.layers.max_pooling2d max_pooli...

numpy使用fromstring创建矩阵的实例

使用字符串创建矩阵是一个很实用的功能,之前自己尝试了很多次的小功能使用这个方法就能够简单实现。 创建长度为16的字符串,是为了方便能够在各种数据类型之间转换。 >>>...