2011-06-03 35 views
0

一些网站,如Sumotorrent.com使用32位长哈希的磁链接,但我的代码被设计为存储和使用40位长哈希?如何将32位长信息哈希转换为40位长信息哈希在python中?

+0

@vartec @GWW @ dan04 @塞斯 - 约翰逊@斯科特 - 格里菲斯请参阅在您的部分知识的缺乏@hammar提供的答案并不总是意味着一个问题是错误的或模糊的,并且在计算机科学中没有特别模糊的问题。 – Max 2011-06-03 22:35:46

回答

1

这些磁铁链接中的信息哈希似乎是在Base32中编码的,而在Bittorrent中使用的信息哈希是十六进制的(即Base16)。这似乎提供一致的结果:

import base64 
base64.b16encode(base64.b32decode("<your hash goes here>")) 
1

幸运的是,32小于40,所以你可以填充8个零而不会丢失信息。

+0

@ recursive mate 32长长的一个在不同的基础上,而40长的一个在另一个基础上,你不能仅仅填充它,我宁愿问如何将32长长的长度转换为40长长的基础 – Max 2011-06-03 13:57:52

+0

@Max :不同基数的基因不同?如果是这样,告诉我们他们,而不是让我们不得不猜测。 – recursive 2011-06-03 14:54:20

+0

@recursive:p mate如果我知道会搜索“如何从基本x转换为y” – Max 2011-06-03 15:00:36