问题:
![在这里插入图片描述](https://img-blog.csdnimg.cn/85b88924e702442c8262180cce0c83f0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2B5YWt6LC3,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
如上图,AES的CFB加密方式不仅加密和解密不能使用同一个对象,就连加密的时候同一个对象都不能使用两次,否则就会如下图:
![](https://img-blog.csdnimg.cn/7adfc8f9921a4884ad2ffc15c333f91c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y2B5YWt6LC3,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
即使明文(data),密钥(key),偏移量(iv),填充(padding)都一样,那你得到的密文还是不一样。
解决办法:
目前我想到的就是将加密结果赋给一个变量,这样再次使用时就不会发生变化(我当时错误是因为我print了一次,然后又return了,导致结果不同),我也只是个才开始的小白,有知道解决办法的友友欢迎一起探讨学习。
总结:
产生这种问题的情况:
- 加密和解密的时候没有创建两个对象
- 同一个函数里同一个对象使用两次或以上
希望大家都能调试顺利!