Python 随机十六进制生成器

标签 python python-2.7 random hex smb

所以我希望每次调用时生成一个随机的十六进制值

randhex = "\\x" + str(random.choice("123456789ABCDEF")) + str(random.choice("123456789ABCDEF"))

到目前为止,我想出的只是进行不同的 = 调用(例如 randhex1 = ^^, randhex2)等,但这很乏味且效率低下,我不想这样做

ErrorClass = "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF")) + "\\x" + str(random.choice("123456789ABCDEF"))

因为这看起来不太好,而且很难判断有多少。

我正在尝试将其分配给此

ErrorClass = randhex1 + randhex2 + randhex3 + randhex4,
Flags = randhex5,
Flags2 = randhex6 + randhex7,
PIDHigh = randhex2 + randhex5,

理想情况下,我希望一切都是统一的,或者像 ErrorClass = randhex*4 这样干净的,而不是必须分配不同的数字。但是,如果我这样做,它只是将代码复制为如下所示:

Input: ErrorClass = randhex + randhex + randhex + randhex
Output: \xFF\xFF\xFF\xFF

这显然不起作用,因为那时它们都是一样的。任何帮助都会很棒。

最佳答案

创建一个返回随机生成的字符串的函数。每次调用它时它都会给你一个新值。

import random

def randhex():
    return "\\x" + str(random.choice("0123456789ABCDEF")) + str(random.choice("0123456789ABCDEF"))

ErrorClass = randhex() + randhex() + randhex() + randhex()
Flags = randhex()
Flags2 = randhex() + randhex()
PIDHigh = randhex() + randhex()

print(ErrorClass)
print(Flags)
print(Flags2)
print(PIDHigh)

结果示例:

\xBF\x2D\xA2\xC2
\x74
\x55\x34
\xB6\xF5

为了更加方便,请向 randhex 添加一个 size 参数,这样您就不必在每次分配时多次调用它:

import random

def randhex(size=1):
    result = []
    for i in range(size):
        result.append("\\x" + str(random.choice("0123456789ABCDEF")) + str(random.choice("0123456789ABCDEF")))
    return "".join(result)

ErrorClass = randhex(4)
Flags = randhex()
Flags2 = randhex(2)
PIDHigh = randhex(2)

print(ErrorClass)
print(Flags)
print(Flags2)
print(PIDHigh)

关于Python 随机十六进制生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220221/

相关文章:

python - django 管理员的自定义 url

Python 和 Jinja2 - 导入另一个环境的模板

python - Scrapy:不收集所有页面的数据

python-2.7 - NLTK POS标记器不起作用

data-structures - python : Populate lower triangle matrix from a list

python - 如何使用正则表达式拆分列表元素

python - 如何让 vim 在调用函数时只在括号后的下一行插入 4 个空格(一个缩进级别)?

c++ - 三个互不相等的随机数?

c++ - 我们可以直接调用 gcc simd fast mersenne_twister_engine (mt19937_64) 吗?

mongodb - 在 Go 中随机化 MongoDB 查询的顺序