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设计】。

相关文章

计算pytorch标准化(Normalize)所需要数据集的均值和方差实例

pytorch做标准化利用transforms.Normalize(mean_vals, std_vals),其中常用数据集的均值方差有: if 'coco' in args.dat...

Sanic框架流式传输操作示例

本文实例讲述了Sanic框架流式传输操作。分享给大家供大家参考,具体如下: 简介 Sanic是一个类似Flask的Python 3.5+ Web服务器,它的写入速度非常快。除了Flask...

python正向最大匹配分词和逆向最大匹配分词的实例

正向最大匹配 # -*- coding:utf-8 -*- CODEC='utf-8' def u(s, encoding): 'converted other enco...

django模板结构优化的方法

模版结构优化 引入模版 有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函...

浅谈flask中的before_request与after_request

本文主要是对flask中的before_request与after_request用法做一个简单的分析,具体实例和介绍如下。 使用before_request 和 after_reque...