从我最初的评论:
一种典型的情况是密钥与另一侧使用的密钥不同。这是最可能的原因,但是您可能还想检查处理流的方式,因为您确实缺少.close()以及可能缺少.flush()语句。您还假定始终可以将所有数据读入缓冲区,但实际情况并非如此。
密钥确实计算不正确。

从我最初的评论:
一种典型的情况是密钥与另一侧使用的密钥不同。这是最可能的原因,但是您可能还想检查处理流的方式,因为您确实缺少.close()以及可能缺少.flush()语句。您还假定始终可以将所有数据读入缓冲区,但实际情况并非如此。
密钥确实计算不正确。