流畅的Python - 第21章-类元编程

使用type函数构造类

在python可以通过type函数构造类。

1
2
3
4
5
6
7
8
MyClass = type("MyClass", (object,), {"x": 42, "func": lambda self: self.x * 2})


class MyClass2:
    x = 42

    def func(self):
        return self.x * 2

以上两种方式的效果是一样的,都构造了MyClass类,并且含有属性x,以及类方法func

图解密码技术 - 公钥密码

密钥配送问题

在之前的对称密码模式中,加密和解密的密钥都是相同的,接收者必须收到密码和与之对应的密钥才能进行解密。在这一过程中,我们不能保证这个过程是否被劫持者劫持。

密钥必须发送,但又不能发送。这就是对称密码的密钥配送问题

解决方法有以下几种:

  • 通过事先共享密钥来解决
  • 通过密钥分配中心解决
  • 通过Diffie-Hellman密钥交换来解决
  • 通过公钥密码来解决

前面三种方式都有各自的缺点,都不考虑。第四种方式通过公钥密码交换对称密钥为可行的方式。

图解密码技术 - 单向散列函数

单向散列函数的性质

单向散列函数(one-way hash function)有一个输入和一个输出,输入称为消息(message),输出称为散列值(hash value)

单向散列函数主要的功能是防止文件被篡改,它用于验证文件的完整性

单向散列函数主要有以下性质:

  • 能够根据任意长度的消息计算出固定长度的散列值
  • 能够快速计算出散列值
  • 消息不同散列值也不同
  • 具备单向性:无法通过散列值反推出消息。