37、面向对象程序测试与并发编程实践

面向对象程序测试与并发编程实践

1. 维吉尼亚密码加密与测试驱动开发

维吉尼亚密码是一种经典的加密算法。给定关键字“TRAIN”,对消息“ENCODED IN PYTHON”进行加密的步骤如下:
1. 重复关键字和消息,以便将字母一一对应:

E N C O D E D I N P Y T H O N    T R A I N T R A I N T R A I N
  1. 对于明文中的每个字母,在表中找到以该字母开头的行。
  2. 找到与所选明文字母对应的关键字字母所在的列。
  3. 加密字符位于该行和该列的交叉处。

例如,以“E”开头的行与以“T”开头的列相交于字符“X”,所以密文的第一个字母是“X”。以“N”开头的行与以“R”开头的列相交于字符“E”,得到密文“XE”。完整的加密消息是“XECWQXUIVCRKHWA”。

解密过程基本相反。首先,找到共享关键字字符所在的行(“T”行),然后找到该行中加密字符(“X”)所在的位置。明文字符位于该行对应列的顶部(“E”)。

接下来,我们使用测试驱动开发(TDD)的策略来实现加密和解密方法。我们将使用 py.test 进行单元测试。

以下是具体的测试和实现代码:

# 测试加密方法
def test_encode():
    cipher = VigenereCipher("TR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值