Chromium ID 计算方法

 1 try:
 2   import hashlib
 3   _new_md5 = hashlib.md5
 4 except ImportError:
 5   import md5
 6   _new_md5 = md5.new
 7 
 8 def _UnsignedFingerPrintImpl(str, encoding='utf-8'):
 9   hex128 = _new_md5(str).hexdigest()
10   int64 = long(hex128[:16], 16)
11   return int64
12 
13 
14 def UnsignedFingerPrint(str, encoding='utf-8'):
15   return _UnsignedFingerPrintImpl(str, encoding)
16 
17 
18 def FingerPrint(str, encoding='utf-8'):
19   fp = UnsignedFingerPrint(str, encoding=encoding)
20   # interpret fingerprint as signed longs
21   if fp & 0x8000000000000000L:
22     fp = - ((~fp & 0xFFFFFFFFFFFFFFFFL) + 1)
23   return fp
24   
25 def GenerateMessageId(message, meaning=''):
26   fp = FingerPrint(message)
27   if meaning:
28     # combine the fingerprints of message and meaning
29     fp2 = FingerPrint(meaning)
30     if fp < 0:
31       fp = fp2 + (fp << 1) + 1
32     else:
33       fp = fp2 + (fp << 1)
34   # To avoid negative ids we strip the high-order bit
35   #SILVERAEGIS_BEGIN_BEGIN
36   fpid = str(fp & 0x7fffffffffffffffL)
37   return fpid
38 test = GenerateMessageId("Adding to BlackSwan ...")
39 #test = GenerateMessageId('&Show in Finder', "'show in Finder' on Mac in Title Case")
40 print test

文章出处: http://www.cnblogs.com/zhfuliang/archive/2013/05/21/3090938.html

转载于:https://www.cnblogs.com/zhfuliang/archive/2013/05/21/3090938.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值