python爬虫进行AES解密遇到的问题

news/2025/4/1 2:48:59/

1、TypeError: Object type <class ‘str’> cannot be passed to C code

报错如下:

  File "C:\Python311\Lib\site-packages\Crypto\Util\_raw_api.py", line 143, in c_uint8_ptrraise TypeError("Object type %s cannot be passed to C code" % type(data))
TypeError: Object type <class 'str'> cannot be passed to C code

AES.new 方法的参数,需要为 bytes/bytearray/memoryview 类型,报错代码中传递的是字符串类型,将其转为 bytes 类型

在这里插入图片描述

解决办法1:key、iv 参数都进行encode编码,

key = key.encode('utf-8')
iv = iv.encode('utf-8')

解决办法2:使用bytes转换为字节

    # 将key和iv转换为字节key = bytes(key, encoding='utf-8')iv = bytes(iv, encoding='utf-8')

参考链接:
1、爬虫的Crypto加密出现 TypeError: Object type class ‘str‘ cannot be passed to C code
2: 报错解决:TypeError: Object type class ‘str’ cannot be passed to C code
3: TypeError: Object type <class ‘str‘> cannot be passed to C code
4、Crypto.AES 报错 | TypeError: Object type

2、UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xfb in position 2: invalid start byte

报错:

    decrypt_res = decrypted.decode('utf-8')^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfb in position 2: invalid start byte

解决思路:error参数值改为ignore
修改字符集参数,一般这种情况出现得较多是在国标码(GBK)和utf8之间选择出现了问题。
出现异常报错是由于设置了decode()方法的第二个参数errors为严格(strict)形式造成的,因为默认就是这个参数,将其更改为ignore等即可。例如:
line.decode(“utf8”,“ignore”)

#正确代码:
decrypt_res = decrypted.decode('utf-8', 'ignore')

参考链接:
1、Python3解决UnicodeDecodeError: ‘utf-8’ codec can’t decode byte…问题最快解决方案

3、AES算法CBC模式加密字符串后再解密出现乱码问题

解决方法:
每次加解密都需要重新生成一个 AES 对象

参考链接:
1、解决AES算法CBC模式加密字符串后再解密出现乱码问题

文章来源:https://blog.csdn.net/qupan1993/article/details/131264869
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/440762.html

相关文章

更新windows补丁时一直卡在搜索更新

在微软下载好安装补丁Windows8.1-KB2999226-x64后&#xff0c;双击时一直停留在“正在此计算机上搜索”界面。 解决方案&#xff1a; 1.将windows 自动更新设置为&#xff1a;“从不检查更新” 。 2.关闭杀毒软件--360安全卫士 3.打开你下载的补丁&#xff0c;这时打开后一般可…

战网一直显示“正在等待另一项安装或更新”解决方法

战网一直显示“正在等待另一项安装或更新”解决方法 参考文章&#xff1a; &#xff08;1&#xff09;战网一直显示“正在等待另一项安装或更新”解决方法 &#xff08;2&#xff09;https://www.cnblogs.com/123e/p/5693013.html 备忘一下。

关闭谷歌更新提示“若要接收后续 google chrome 更新,您需使用 windows 10或更高版本”

关闭谷歌更新提示“若要接收后续 google chrome 更新,您需使用 windows 10或更高版本” 操作说明&#xff1a; 新建一个记事本文件&#xff1b;打开记事本文件&#xff0c;复制下面这段代码&#xff0c;粘贴其中&#xff0c;保存关闭。 Windows Registry Editor Version 5.00…

如何关闭“若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本”

在Windows7使用Google Chrome浏览器的读者最近一打开Chrome 浏览器就会弹出更新警告&#xff0c;“若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本”&#xff0c;有强迫症的我终于找到了解决办法&#xff0c;分享给大家&#xff1a; 新建一个记事本文件&…

【战网】如果直接使用国服战网客户端登录亚服

找到你的战网文件夹Battle.net 里面有Battle.net Launcher.exe这个启动文件。 你也右键查看战网快捷方式的目标&#xff0c;找到这个文件的位置。 启动cmd或powershell 输入 ."./Battle.net Launcher.exe" --setregionTW登录台湾服务器节点。 登陆账号前&#xff0…

战网一直显示 正在等待另一项安装或更新 解决方法

今天更新战网的时候发现战网一直显示“正在等待另一项安装或更新”&#xff0c;进度条卡着不动。 经过多次尝试&#xff0c;终于解决。如果你碰到了相同的问题&#xff0c;可以按以下步骤尝试解决&#xff1a; 1. 关闭战网客户端 2. 打开任务管理器&#xff0c;结束“agent.exe…

若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本

如何关闭“若要接收后续 google chrome 更新,您需使用 windows 10 或更高版本” - 简书 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Policies\Google\Chrome] "SuppressUnsupportedOSWarning"dword:00000001 Win7系统安装Edge浏览器后提示要…

win10系统魔兽世界无法连接服务器地址,win10系统无法更新魔兽世界提示正在等待另一项安...

魔兽世界是一款多人在线角色扮演网游&#xff0c;最近win10用户在更新魔兽世界网游时&#xff0c;系统提示“正在等待另一项安装或更新”&#xff0c;那么遇到该提示怎么解决呢?方法很简单&#xff0c;下面小编就为大家介绍win10系统无法更新魔兽世界提示“正在等待另一项安装…