当前位置: 首页 > 面试题库 >

如何将python urandom转换为字符串?

东门涵育
2023-03-14
问题内容

如果我调用os.urandom(64),则会得到64个随机字节。参照字节转换为一个Python字符串我试着

a = os.urandom(64)
a.decode()
a.decode("utf-8")

但是出现了回溯错误,指出字节不在utf-8中。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte

与字节

b'\x8bz\xaf$\xb6\x93q\xef\x94\x99$\x8c\x1eO\xeb\xed\x03O\xc6L%\xe70\xf9\xd8
\xa4\xac\x01\xe1\xb5\x0bM#\x19\xea+\x81\xdc\xcb\xed7O\xec\xf5\\}\x029\x122
\x8b\xbd\xa9\xca\xb2\x88\r+\x88\xf0\xeaE\x9c'

是否有将这些字节解码为某种字符串表示形式的完全验证方法?我正在生成sudo随机令牌,以跟踪多个数据库引擎中的相关文档。


问题答案:

以下代码可在Python 2.7和3上使用:

from base64 import b64encode
from os import urandom

random_bytes = urandom(64)
token = b64encode(random_bytes).decode('utf-8')


 类似资料:
  • 问题内容: 我有一个,我需要一个。如何从一个转换为另一个? 问题答案: 好问题。我有以下五种 6种方法可以做到这一点。 注意:返回。因此有效地两者是相同的。 调用,这又设置了数组。 另一方面,调用以下程序包私有构造函数。 从源代码中的Java 8的源代码 因此似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。

  • 问题内容: 如何将字符串转换为long。 为了你 所以你怎么走却又漫长。 问题答案: 这是一种常用的方法: 还有一种方法:区别在于返回原语而返回对象。

  • 问题内容: 如何在Java中转换String为CharSequence? 问题答案: 从 IS-A开始,您可以在需要的地方传递,也可以将分配给: 如果要将a转换为,则使用必须由的每个具体实现实现的方法。 希望能帮助到你。

  • 问题内容: 我正在尝试从标准输入中读取一些非常大的数字,并将它们加在一起。 但是,要添加到BigInteger,我需要使用: 效果很好,但是由于唯一需要加上,所以我不能添加大于的最大值(9223372036854775807)的数字。 每当我尝试添加9223372036854775808或更多时,都会得到NumberFormatException(这是完全可以预期的)。 有类似的东西吗? 问题答案

  • 问题内容: 从字符串转换为字符串的最佳方法(最快的性能)是什么? 对于我们可以做,但它给出了一个错误: 我从那产生的from 方法而不是 这个解决方案最快吗? 编辑 我的坏东西,而不是..,所以我可以直接做。 问题答案: 事先注意: 询问者首先指出输入分片就是答案。后来他意识到输入是可以直接转换为的,因为它是别名(并且语言规范支持=> 转换)。 您无法转换不同类型的切片,必须手动进行。 问题是我们

  • 问题内容: http://play.golang.org/p/BoZkHC8_uA 我想将uint8转换为字符串,但不知道如何。 这给我 任何想法? 问题答案: 只需将其转换:

  • 问题内容: 我正在使用docopt来解析命令行参数。此方法有效,并生成地图,例如 现在,我想将and和值连接到一个字符串,两个值之间用冒号表示。基本上,诸如: 不幸的是,这不起作用,因为我收到了错误消息: 无效的操作:arguments [“”] +“:”(类型不匹配的接口{}和字符串) 因此,显然我需要将从映射中获得的值(就是,所以可以是任何东西)转换为字符串。现在我的问题是,我该怎么做? 问题

  • 问题内容: 我在JS中有一个JSON对象,我想将其转换为字符串。这是功能吗? 提前致谢, 问题答案: JSON.stringify() 将值转换为JSON,如果指定了replacer函数,则可以选择替换值,如果指定了replacer数组,则可以选择仅包括指定的属性。