zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    媒体查询漫谈——@media Queries
    JavaScript工具函数集
    什么是BFC、IFC、GFC和FFC
    HTTP与HTTPS的区别
    reflow 和 repaint
    客户端检测
    ajax
    批量删除
    数据访问
    登录主页面代码
  • 原文地址:https://www.cnblogs.com/zhfuliang/p/3090938.html
Copyright © 2011-2022 走看看