这是因为在使用Crypto模块中的DES3加密时,如果使用MODE_CBC模式,每次加密时都会生成一个随机的IV(初始化向量),因此每次加密的结果都不一样。而pyDes默认使用的是ECB模式,不需要IV,因此每次加密结果都相同。

如果你想让Crypto模块中的DES3加密每次结果都一样,你需要自己指定一个固定的IV,并且每次加密时都使用相同的IV。可以将IV作为参数传递给DES3对象的构造函数,或者在加密时手动指定IV。

注意,使用相同的IV加密多个消息可能会导致安全问题,因为IV应该是随机的,并且每个消息应该使用不同的IV。因此,如果你需要加密多个消息,最好为每个消息生成一个新的随机IV。

为什么我使用from CryptoCipher import DES3模块模式为MODE_CBC模式每次加密出来的结果都不一样。但是pyDes每次加密结果都是一样的。我可以让使用Crypto模块和使用pyDes一样吗我想让Crypto每次的加密结果都一样可以做到吗。可以只初始化DES3对象一次哪怕循环10次encrypt方法加密出来的结果也是一样的。

原文地址: https://www.cveoy.top/t/topic/eTXm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录