很简单,让我们看看它是如何工作的。首先,通过减去密钥来获得加密的消息。enc = msg + key (mod 127)

我们如何获得原始信息?很简单,两边都减去键enc - key = msg + key - key (mod 127)

我们得到:enc - key = msg (mod 127)

有关更多详细信息,请参考Modular arithmetic,我认为它应该属于group/field/ring之一。我不是数学专家,你可以在Number theory找到更深层次的理论知识。以下是经过改进的代码:def encrypt(key, msg):

encryped = []

for i, c in enumerate(msg):

key_c = ord(key[i % len(key)])

msg_c = ord(c)

encryped.append(chr((msg_c + key_c) % 127))

return ''.join(encryped)

def decrypt(key, encryped):

msg = []

for i, c in enumerate(encryped):

key_c = ord(key[i % len(key)])

enc_c = ord(c)

msg.append(chr((enc_c - key_c) % 127))

return ''.join(msg)

if __name__ == '__main__':

key = 'This_is_my_awsome_secret_key'

msg = 'Hello world'

encrypted = encrypt(key, msg)

decrypted = decrypt(key, encrypted)

print 'Message:', repr(msg)

print 'Key:', repr(key)

print 'Encrypted:', repr(encrypted)

print 'Decrypted:', repr(decrypted)

输出Message: 'Hello world'

Key: 'This_is_my_awsome_secret_key'

Encrypted: '\x1dNV`O\nkO`fD'

Decrypted: 'Hello world'

python自编信息加密函数_自定义Python加密算法相关推荐

  1. python调用c语言函数_从Python调用C函数

    python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...

  2. python去空格的函数_(转)python strip()函数 去空格\n\r\t函数的用法

    原文:http://www.cnblogs.com/zdz8207/p/python_learn_note_20.html python3.4学习笔记(二十) python strip()函数 去空格 ...

  3. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)

    一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...

  4. python创建画布的函数_使用Python的turtle(海龟)模块画图

    第一步:让Python引入turtle模块,引入模块就是告诉Python你想要用它. import turtle 第二步:创建画布.调用turtle中的Pen函数 t = turtle.Pen() 第 ...

  5. python能编plc吗_基于Python的丰炜系列PLC与PC串行通信的实现

    龙源期刊网 http://www.qikan.com.cn 基于 Python 的丰炜系列 PLC 与 PC 串行通 信的实现 作者:韩志三 来源:<硅谷> 2013 年第 22 期 摘 ...

  6. python魔法方法与函数_在Python中画图(基于Jupyter notebook的魔法函数)

    这篇文章主要介绍了在Python中画图(基于Jupyter notebook的魔法函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先展示一段相 ...

  7. python判断素数的函数_使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念 ...

  8. python中的findall函数_关于Python正则表达式 findall函数问题详解

    在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下: import re str ...

  9. python无返回值函数_理解Python 中无返回值函数的问题

    例如 list 的 append 操作就是无返回值的,换句话说就是不能进行形如 list = [] list.append(1).append(2) 这样的连续操作 注意函数返回的数据类型注意是 li ...

最新文章

  1. Android:客户端和服务器之间传输数据加密
  2. Excel为整列设置函数
  3. 操作系统习题5—存储管理
  4. SQLite的事务处理方式
  5. TypeScript 2.5 发布,增加语言级重构
  6. leetcode455. 分发饼干
  7. Python爬去知乎上问题下所有图片
  8. JSON数组分配输出每个li
  9. 在每个运行中运行多个查询_Spring Data JPA的运行原理及几种查询方式
  10. oracle java 面试题及答案_Oracle面试题及答案
  11. php调用第三方接口代码,PHP接口编程——调用第三方接口获取天气
  12. libvpx enabled but no supported decoders found
  13. 转载——sunlogin远程控制安装bug解决
  14. 新宝解读大盘单边攀升突破3600点 大金融崛起
  15. 宝塔linux面板安全吗,宝塔面板 安全吗
  16. 公积金贷款逾期预测Baseline分享
  17. uClinux on Blackfin BF533 STAMP - A DSP Linux Port
  18. 基于运动学模型的轨迹跟踪控制
  19. idea莫名其妙打不开了怎么办
  20. 《史上最伟大的交易》读书笔记

热门文章

  1. 数据中心实施服务器虚拟化前的十大思考
  2. 从硬盘安装在XP下装红旗linux双系统
  3. VOIP侵蚀电信利益,未来最赚钱的行业.
  4. 【设计模式系列】行为型之策略模式
  5. python技能(1)-map函数
  6. node process
  7. 怎样验证软件是否可信?是否被篡改?
  8. 求大素数 - 埃拉托斯特尼筛法
  9. MPLS CSPF工作原理详解和相关实验
  10. windows怎么用gpu跑python程序_在GPU(windows)上运行Theano的命令