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

Python中字符串的持久哈希

吴弘壮
2023-03-14
问题内容

您如何将任意字符串转换为唯一的整数,这在Python会话和平台之间是相同的?例如hash('my string'),由于每个Python会话和平台均返回不同的值,因此无法使用。


问题答案:

如果哈希函数确实不适合您,则可以将字符串转换为数字。

my_string = 'my string'
def string_to_int(s):
    ord3 = lambda x : '%.3d' % ord(x)
    return int(''.join(map(ord3, s)))

In[10]: string_to_int(my_string)
Out[11]: 109121032115116114105110103L

通过将每个三元组映射到,这是可逆的chr

def int_to_string(n)
    s = str(n)
    return ''.join([chr(int(s[i:i+3])) for i in range(0, len(s), 3)])

In[12]: int_to_string(109121032115116114105110103L)
Out[13]: 'my string'


 类似资料:
  • 我对将纯java Curve25519函数转换为Python等效函数存在问题,具体问题与将哈希字符串转换为字节等效函数的摘要函数有关,java实现: 数据示例: sP=“这是一个用于测试目的的密码短语示例” 生成此字节输出: 82, -57, 124, 58, -105, 76, 123, 3, 119, -21, 121, 71, -54, 73, -75, 54, 31, -33, -49,

  • 问题内容: 我有一个要哈希的字符串。在node.js中生成哈希的最简单方法是什么? 哈希用于版本控制,而非安全性。 问题答案: 看看crypto.createHash(algorithm)

  • 我正在进行一个项目,它将所有数据存储在键/值对中。键和值都是字符串。更改这超出了当前的范围。每个数据概念都由一个protobuf消息表示。 因此,我必须将protobuf消息存储为字符串。将消息存储为message.tobyteString().toString()就足够了吗?或者我应该对字节[]进行编码,例如使用Base32编码? 编辑 使用字节字符串进行持久化似乎不起作用: 在解析协议消息时,

  • 问题内容: 在过去的一个小时中,我已经阅读了很多文章,但是对于在Hashmap中使用不可变对象作为键的概念,我仍然不太清楚。我有一个哈希图,其键为字符串。哈希图中的值是MyStore,其中MyStore表示有关我拥有的商店的信息。字符串代表地址。在我的代码中,我拥有的逻辑是,我首先在映射中查找该键(如果存在)->获取其值,如果不存在,则将其放入哈希映射。我的经理刚刚告诉我,密钥会在将来发生变化,也

  • 问题内容: 我需要python中的高性能字符串哈希函数,该函数可以生成至少具有 34 位输出的整数(64位是有意义的,但32位太少了)。在Stack Overflow上还有其他类似的问题,但是在我能找到的每一个被接受/赞成的答案中,我都属于以下几类之一,这些问题都不适用(由于给定的原因)。 使用内置功能。至少在我正在开发的机器上(使用python 2.7和64位cpu),此函数会产生一个整数,该整

  • 问题内容: 在Python中,什么时候以及什么时候使用字符串连接与字符串替换比较容易。由于字符串连接的性能有了很大的提高,这(成为更多)是一种风格上的决定,而不是一种实际的决定吗? 举一个具体的例子,如何处理灵活的URI: 编辑:也有关于加入字符串列表和使用命名替换的建议。这些是中心主题的变体,即在什么时候做正确的方法?感谢您的回复! 问题答案: 根据我的机器,连接的速度(明显)更快。但是从风格上