【发布时间】:2018-05-26 07:08:45
【问题描述】:
我正在尝试编写一个 python 脚本来将十六进制字符串转换为 ASCII 并将结果保存到 .der 证书格式的文件中。我可以使用转换插件在 Notepad++ 中执行此操作,但我想找到一种方法在命令行中的 python 脚本中执行此转换,方法是调用 notepad++ NppConverter 插件或使用 python 模块。
我在其中的一部分,但我的转换与 notepad++ 中看到的 ASCII 输出不同,下面是 Notepad++ 中输出的 sn-p
但我的 python 转换在下面显示的输出略有不同
如您所见,我的脚本导致输出中缺少字符,老实说,我不知道为什么某些块用黑色勾勒出来。但是这些缺失的块需要以与第一张图片相同的格式。
这是我的基本代码,我在 Python 3 中工作,我正在使用反斜杠替换错误控件,因为这是让有问题的十六进制出现在输出文件中的唯一方法
result = bytearray.fromhex('380c2fd6172cd06d1f30').decode('ascii', 'backslashreplace')
text_file = open("C:\Output.der", "w")
text_file.write(result)
text_file.close()
任何指导将不胜感激。
【问题讨论】:
-
你能提供一个输入示例吗?
-
那些黑色字符看起来像是非 ASCII 字符(或 ASCII 控制码)。这是chart,
-
我已经调整了原始问题以包含给定输出图片的十六进制字符串,谢谢。
-
@martineau,同意这是我最初的理解,但我想它更多的是围绕格式,如果我可以让 notepad++ 以与使用它的插件相同的方式显示 python 脚本输出,那么我我相信生成的证书文件会起作用。
-
当我运行你的代码时,我得到一个包含十六进制字节
38 0C 2F 5C 78 64 36 17 2C 5C 78 64 30 6D 1F 30的输出文件。希望输出是什么?我不在乎它在某些文本编辑器中是什么样子,比如 notepad++ 或其他任何东西——这正是你想要的文件。顺便说一下,这两个5C 78子字符串分别代表\x前缀。
标签: python python-3.x hex ascii